diff --git a/src/main.rs b/src/main.rs index c888e71..a8e6ada 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,7 +11,9 @@ use clap::{Parser, Subcommand}; use walkdir::WalkDir; -use std::fs::DirEntry; +use std::env::temp_dir; +use std::fs::{create_dir, DirEntry}; +use std::os::unix::fs::symlink; use std::path::{Path, PathBuf}; use env_logger::Env; @@ -47,7 +49,9 @@ enum Commands { path: PathBuf }, - List + List, + + View, } #[derive(Subcommand)] @@ -123,5 +127,27 @@ fn main() { println!("{f:?}"); } } + Commands::View => { + let dir_root = temp_dir(); + let mut num = 1; + let mut num_string: String; + let mut path; + + loop { + num_string = num.to_string(); + path = dir_root.clone().into_os_string().into_string().unwrap() + "/" + &num_string; + if create_dir(path.clone()).is_ok() { + break + }; + num += 1; + } + + let files = database.get_all_files(cli.repo); + for f in files { + let _ = symlink(f.path, path.clone()); + } + + println!("{}", path); + } }; }