rm function now working
This commit is contained in:
48
src/main.rs
48
src/main.rs
@@ -31,6 +31,7 @@ fn main() {
|
||||
&_ => add_files(&arg, &mut args, &mut current_shelf),
|
||||
}
|
||||
} else {
|
||||
// Should be replaced by help function
|
||||
println!("no parameters")
|
||||
}
|
||||
let _ = save_library(library);
|
||||
@@ -45,7 +46,7 @@ fn list_library(library: &mut Library) {
|
||||
println!("Current Shelf: {}", ¤t_shelf.name);
|
||||
println!("Content: ");
|
||||
for path in ¤t_shelf.content {
|
||||
println!("{}", path)
|
||||
println!(" - {}", path)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +54,16 @@ fn add_files(current_arg: &str, args: &mut env::Args, shelf: &mut Shelf) {
|
||||
// Callable function thing
|
||||
let mut add_file = |file: &str| {
|
||||
let file_path = Path::new(&file);
|
||||
let absolute_path = Path::canonicalize(&file_path).expect("something wrong");
|
||||
let absolute_path = Path::canonicalize(&file_path).expect("Path cannot be Cannonicalized");
|
||||
|
||||
match utils::match_file_name(&file, shelf) {
|
||||
Ok(_) => {
|
||||
// Prevent existing files from being added to shelf
|
||||
println!("File {} is already in current shelf", file);
|
||||
process::exit(0)
|
||||
}
|
||||
Err(_) => {} // Continue with function
|
||||
}
|
||||
|
||||
let _ = shelf
|
||||
.content
|
||||
@@ -63,6 +73,7 @@ fn add_files(current_arg: &str, args: &mut env::Args, shelf: &mut Shelf) {
|
||||
return;
|
||||
};
|
||||
|
||||
// If add wasn't specified add the file
|
||||
if current_arg != "add" {
|
||||
add_file(¤t_arg)
|
||||
}
|
||||
@@ -74,14 +85,39 @@ fn add_files(current_arg: &str, args: &mut env::Args, shelf: &mut Shelf) {
|
||||
}
|
||||
|
||||
fn remove_files(args: &mut env::Args, shelf: &mut Shelf) {
|
||||
if shelf.content.len() < 1 {
|
||||
println!(
|
||||
"Shelf \"{}\" is Empty. Are you using the right shelf?",
|
||||
shelf.name
|
||||
);
|
||||
return;
|
||||
}
|
||||
if args.len() > 0 {
|
||||
for file in args {
|
||||
match file.parse::<usize>() {
|
||||
// If the argument is a number instead of a file name
|
||||
let index: usize = match file.parse::<usize>() {
|
||||
Ok(index) => {
|
||||
println!("path is: {}", &shelf.content[*&index])
|
||||
println!("path is: {}", &shelf.content[*&index]);
|
||||
index
|
||||
}
|
||||
Err(_) => {}
|
||||
}
|
||||
Err(_) => match utils::match_file_name(&file, shelf) {
|
||||
Ok(index) => {
|
||||
println!("path is: {}", &shelf.content[*&index as usize]);
|
||||
index
|
||||
}
|
||||
Err(e) => {
|
||||
eprintln!("{e}");
|
||||
process::exit(1)
|
||||
}
|
||||
},
|
||||
};
|
||||
let file_path = Path::new(&shelf.content[index]);
|
||||
println!(
|
||||
"Removed file {} from shelf {}",
|
||||
file_path.canonicalize().unwrap().to_str().unwrap(),
|
||||
shelf.name
|
||||
);
|
||||
shelf.content.remove(index);
|
||||
}
|
||||
} else {
|
||||
// If there's no file specified, clear the whole thing
|
||||
|
||||
Reference in New Issue
Block a user