aboutsummaryrefslogtreecommitdiffstats
path: root/sys/nixpkgs/pkgs/lf-make-map/src/main.rs
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-05 12:59:36 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-05 12:59:36 +0200
commit023b7cd0ada0cb153769bdcc931ef04512d125c4 (patch)
tree584315a010a9eccdd182e48801496ea4e226bfcb /sys/nixpkgs/pkgs/lf-make-map/src/main.rs
parentbuild(treewide): Update (diff)
downloadnixos-config-023b7cd0ada0cb153769bdcc931ef04512d125c4.zip
feat(pkgs/lf-make-map): Init
Diffstat (limited to 'sys/nixpkgs/pkgs/lf-make-map/src/main.rs')
-rw-r--r--sys/nixpkgs/pkgs/lf-make-map/src/main.rs116
1 files changed, 116 insertions, 0 deletions
diff --git a/sys/nixpkgs/pkgs/lf-make-map/src/main.rs b/sys/nixpkgs/pkgs/lf-make-map/src/main.rs
new file mode 100644
index 00000000..dbfe5ec7
--- /dev/null
+++ b/sys/nixpkgs/pkgs/lf-make-map/src/main.rs
@@ -0,0 +1,116 @@
+use anyhow::Context;
+use clap::Parser;
+use cli::Args;
+use generator::MappingsGenerator;
+
+mod cli;
+mod generator;
+mod mapping;
+
+#[tokio::main]
+async fn main() -> anyhow::Result<()> {
+ let args = Args::parse();
+
+ stderrlog::new()
+ .module(module_path!())
+ .quiet(args.quiet)
+ .show_module_names(false)
+ .color(stderrlog::ColorChoice::Auto)
+ .verbosity(args.verbosity as usize)
+ .timestamp(stderrlog::Timestamp::Off)
+ .init()?;
+
+ // gen_lf_mappings(args.home_name, 0, args.relevant_directories);
+ let map = MappingsGenerator::new(args.relevant_directories, args.depth, args.home_name)
+ .await
+ .context("Failed to initialize mappings generator")?;
+
+ Ok(())
+}
+
+// fn gen_lf_mappings(home_name: PathBuf, char_num: usize, rel_dirs: Vec<PathBuf>) {
+// let mut mappings_vec = vec![];
+// let mut index_counter = 0;
+// rel_dirs.iter().for_each(|rel_dir| {
+// mappings_vec.push(vec![Mapping::new(
+// &gen_hot_key(rel_dir, rel_dir, char_num),
+// rel_dir,
+// rel_dir,
+// None,
+// )]);
+// get_dir(rel_dir.to_owned()).iter().for_each(|path| {
+// mappings_vec[index_counter].push(Mapping::new(
+// &gen_hot_key(
+// path,
+// path.parent().expect("All paths here should have parents"),
+// char_num,
+// ),
+// path,
+// &path
+// .parent()
+// .expect("All paths here should have parents")
+// .to_owned(),
+// None,
+// ));
+// });
+// index_counter += 1;
+// });
+// print_mappings(&mappings_vec, home_name);
+// mappings_vec
+// .into_iter()
+// .for_each(|rel_dir_mapping: Vec<Mapping>| {
+// let mut hash_map = sort_mapping_by_hot_key(rel_dir_mapping.clone());
+// //dbg!(hash_map);
+// hash_map.insert("gsi".to_owned(), vec![rel_dir_mapping[0].clone()]);
+// });
+// }
+//
+// fn sort_mapping_by_hot_key(mut mappings: Vec<Mapping>) -> HashMap<String, Vec<Mapping>> {
+// mappings.sort_by_key(|mapping| mapping.hot_key.clone());
+//
+// let mut filtered_mappings: HashMap<String, Vec<Mapping>> = HashMap::new();
+// mappings.iter().for_each(|mapping| {
+// filtered_mappings.insert(mapping.hot_key.clone(), vec![]);
+// });
+// //dbg!(&mappings);
+//
+// let mut index_counter = 1;
+// mappings.iter().for_each(|mapping| {
+// if mappings.len() > index_counter {
+// let next_mapping = &mappings[index_counter];
+// let vec = filtered_mappings
+// .get_mut(&mapping.hot_key)
+// .expect("This existst as it has been initialized");
+//
+// if &next_mapping.hot_key == &mapping.hot_key {
+// vec.push(mapping.clone());
+// vec.push(next_mapping.clone());
+// } else {
+// vec.push(mapping.clone());
+// }
+//
+// let new_vec = vec.to_owned();
+// filtered_mappings.insert(mapping.hot_key.to_owned(), new_vec);
+// }
+//
+// index_counter += 1;
+// });
+// filtered_mappings
+// }
+//
+// fn print_mappings(mappings: &Vec<Vec<Mapping>>, home_name: PathBuf) {
+// for mapping in mappings {
+// mapping.iter().for_each(|map| {
+// println!(
+// "{} = \"cd {}\";",
+// map.hot_key,
+// map.path
+// .display()
+// .to_string()
+// .replace(home_name.to_str().expect("This should be UTF-8"), "~")
+// );
+// });
+//
+// println!("# -------------");
+// }
+// }