ct_tracker_lib/
projects.rs

1use std::path::PathBuf;
2
3use super::ct_fs::default_path as dp;
4use super::errors;
5
6pub mod persistent;
7
8pub mod delete;
9pub mod list;
10pub mod project_frame;
11pub mod stop;
12pub use project_frame::ProjectFrame;
13pub mod project;
14pub use project::Project;
15
16pub(crate) fn project_path(name: &str) -> errors::CtResult<PathBuf> {
17    let mut path = dp::time_path()?;
18    path.push(format!("{}{}", name, ".json"));
19    Ok(path)
20}
21
22pub fn has(name: &str) -> errors::CtResult<bool> {
23    let path = project_path(name)?;
24    // TODO c0.2.0 or later this is a naive approach
25    //      -> it does not take empty or malformed files into account
26    Ok(path.exists())
27}