From 3f41fd6f95dc7f8945f559387f1249c86a04787b Mon Sep 17 00:00:00 2001 From: 45Tatami Date: Mon, 29 Apr 2024 18:43:13 +0200 Subject: [PATCH] partial view --- src/main.rs | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) 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); + } }; }