use std::path::PathBuf;
use std::process::exit;
use clap::{value_parser, Arg, ArgAction, Command};
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" ),
}
}
Messung V0.5 in Prozent C=90 H=100 G=95
¤ Dauer der Verarbeitung: 0.8 Sekunden
(vorverarbeitet am 2026-06-23)
¤
*© Formatika GbR, Deutschland