From 48286c69b459f9c64b4177df2082735a2122fd11 Mon Sep 17 00:00:00 2001 From: grimhilt Date: Sat, 3 Jun 2023 16:42:23 +0200 Subject: [PATCH] add line in index --- src/commands/add.rs | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/commands/add.rs b/src/commands/add.rs index ae28603..159492b 100644 --- a/src/commands/add.rs +++ b/src/commands/add.rs @@ -1,5 +1,8 @@ use clap::Values; +use std::fs::OpenOptions; use crate::utils; +use std::path::Path; +use std::io::Write pub fn add(files: Values<'_>) { let root = match utils::path::nextsync_root() { @@ -10,9 +13,33 @@ pub fn add(files: Values<'_>) { } }; - dbg!(root.clone()); + let mut index_path = root.clone(); + index_path.push(".nextsync"); + index_path.push("index"); + let mut index_file = OpenOptions::new() + .read(true) + .write(true) + .append(true) + .create(true) + .open(index_path).expect("Cannot open index file"); + let file_vec: Vec<&str> = files.collect(); for file in file_vec { + let path = Path::new(file); println!("{}", file); + match path.try_exists() { + Ok(true) => { + match writeln!(index_file, "{}", path.display()) { + Ok(()) => (), + Err(err) => eprintln!("{}", err), + } + }, + Ok(false) => { + // todo can be regex + }, + Err(err) => { + eprintln!("Error: {}", err); + } + } } }