chore(vendor): add anyhow crate
This commit was merged in pull request #68.
This commit is contained in:
1 parent
7a3a3d6b90
commit
37539682d4
454 files changed
+8906
-1468
No files matched your search
@@ -0,0 +1,47 @@
|
||||
use std::path::PathBuf;
|
||||
use std::process::exit;
|
||||
|
||||
use clap::{Arg, ArgAction, Command, value_parser};
|
||||
|
||||
fn applet_commands() -> [Command; 2] {
|
||||
[
|
||||
Command::new("true").about("does nothing successfully"),
|
||||
Command::new("false").about("does nothing unsuccessfully"),
|
||||
]
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let cmd = Command::new(env!("CARGO_CRATE_NAME"))
|
||||
.multicall(true)
|
||||
.subcommand(
|
||||
Command::new("busybox")
|
||||
.arg_required_else_help(true)
|
||||
.subcommand_value_name("APPLET")
|
||||
.subcommand_help_heading("APPLETS")
|
||||
.arg(
|
||||
Arg::new("install")
|
||||
.long("install")
|
||||
.help("Install hardlinks for all subcommands in path")
|
||||
.exclusive(true)
|
||||
.action(ArgAction::Set)
|
||||
.default_missing_value("/usr/local/bin")
|
||||
.value_parser(value_parser!(PathBuf)),
|
||||
)
|
||||
.subcommands(applet_commands()),
|
||||
)
|
||||
.subcommands(applet_commands());
|
||||
|
||||
let matches = cmd.get_matches();
|
||||
let mut subcommand = matches.subcommand();
|
||||
if let Some(("busybox", cmd)) = subcommand {
|
||||
if cmd.contains_id("install") {
|
||||
unimplemented!("Make hardlinks to the executable here");
|
||||
}
|
||||
subcommand = cmd.subcommand();
|
||||
}
|
||||
match subcommand {
|
||||
Some(("false", _)) => exit(1),
|
||||
Some(("true", _)) => exit(0),
|
||||
_ => unreachable!("parser should ensure only valid subcommand names are used"),
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user