add tldr and base

This commit is contained in:
2022-12-17 21:51:41 +01:00
commit 6dc747f8b0
13 changed files with 764 additions and 0 deletions

16
src/main.rs Normal file
View File

@@ -0,0 +1,16 @@
use prereqs::prereqs_exec;
use util::Cmd;
mod prereqs;
fn main() -> eyre::Result<()> {
let matches = clap::Command::new("toolkit")
.subcommands([prereqs::prereqs()?, tldr::Tldr::cmd()?])
.get_matches();
match matches.subcommand() {
Some(("prereqs", subcmd)) => prereqs_exec(subcmd),
Some(("tldr", subcmd)) => tldr::Tldr::exec(subcmd),
_ => Err(eyre::anyhow!("no command selected!")),
}
}

37
src/prereqs.rs Normal file
View File

@@ -0,0 +1,37 @@
use clap::ArgMatches;
const DEPS: &[&str] = &["gh", "fzf"];
// -- List
//
pub fn ls() -> clap::Command {
clap::Command::new("ls")
}
pub fn ls_exec() -> eyre::Result<()> {
println!("Required packages\n---");
let mut deps: Vec<&str> = DEPS.into_iter().map(|d| d.clone()).collect();
deps.sort();
for dep in deps {
println!("{}", dep)
}
Ok(())
}
// -- Prereqs
//
pub fn prereqs() -> eyre::Result<clap::Command> {
let cmd = clap::Command::new("prereqs").subcommands([ls()]);
Ok(cmd)
}
pub fn prereqs_exec(matches: &ArgMatches) -> eyre::Result<()> {
match matches.subcommand() {
Some(("ls", _)) => ls_exec(),
_ => Err(eyre::anyhow!("not implemented")),
}
}