begin working on file indexing

This commit is contained in:
mykola2312 2024-06-17 21:30:05 +03:00
parent 30613f8cb4
commit bf12b9e864

View file

@ -1,4 +1,4 @@
use std::fs; use std::{fs::{self, DirEntry}, path::Path};
use clap::{Parser, Subcommand}; use clap::{Parser, Subcommand};
use rusqlite::Connection; use rusqlite::Connection;
@ -22,19 +22,46 @@ struct Args {
command: Command command: Command
} }
fn index(path: &String) { fn index(db: Connection, path: &String) {
// iterate resume files
let entries: Vec<DirEntry> = fs::read_dir(Path::new(path).join("resume"))
.unwrap()
.filter_map(|f| f.ok())
.collect();
for entry in entries {
let file_type = match entry.file_type() {
Ok(file_type) => file_type,
Err(_) => continue
};
if !file_type.is_file() {
continue;
}
let hash = match Path::new(&entry.file_name()).file_stem() {
Some(stem) => match stem.to_os_string().into_string() {
Ok(str) => str,
Err(os_str) => {
eprintln!("failed to convert file name for {:#?}", os_str);
continue;
}
},
None => {
eprintln!("file {:#?} has no extension or conversion failed", entry.file_name());
continue;
}
};
println!("{}", hash);
}
} }
fn main() { fn main() {
let args = Args::parse(); let args = Args::parse();
let db = Connection::open(args.db_path).unwrap(); let db = Connection::open(args.db_path).unwrap();
db.execute("INSERT INTO `test` (test) VALUES (?1)", (1337,)).unwrap();
match &args.command { match &args.command {
Command::Index { path } => { Command::Index { path } => {
index(path); index(db, path);
} }
} }
} }