about summary refs log tree commit diff stats
path: root/sys/nixpkgs/pkgs/lf-make-map/src/main.rs
blob: dbfe5ec7f241bc91f169a201351ff7d28a73d61a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
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!("# -------------");
//     }
// }