diff --git a/src/main.rs b/src/main.rs index 09b3e6a..fd33032 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,14 +10,26 @@ struct PersistableRepo { } fn main() -> anyhow::Result<()> { - let dir = match std::env::args().nth(1) { + let dir = match std::env::args().nth(2) { Some(d) => d, None => { - println!("Usage:\n gitice \n"); + println!("Usage:\n gitice \n"); return Ok(()); } }; + // temporary solution to support both freezing and thawing + match std::env::args().nth(1).as_ref().map(|s| &s[..]) { + Some("freeze") => freeze_repos(dir), + Some("thaw") => thaw_repos(dir), + _ => { + println!("Usage:\n gitice \n"); + Ok(()) + } + } +} + +fn freeze_repos(dir: String) -> anyhow::Result<()> { let mut repos: HashMap = HashMap::new(); for entry in WalkDir::new(dir.clone()).into_iter().filter_map(|e| e.ok()) { if entry.file_type().is_dir() { @@ -60,3 +72,7 @@ fn main() -> anyhow::Result<()> { fs::write("gitice.lock", toml::to_string(&repos)?).expect("could not write to lockfile!"); Ok(()) } + +fn thaw_repos(_dir: String) -> anyhow::Result<()> { + Ok(()) +} \ No newline at end of file