You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
jade/src/main.rs

121 lines
4.7 KiB
Rust

use clap::{App, AppSettings, Arg, ArgMatches, ArgSettings, Shell, SubCommand};
fn main() {
let app = App::new("jade")
.version(env!("CARGO_PKG_VERSION"))
.about(env!("CARGO_PKG_DESCRIPTION"))
.subcommand(
SubCommand::with_name("set")
.about("Sets a value for installation")
.subcommand(
SubCommand::with_name("partition")
.about("Partition the install destination")
.arg(
Arg::with_name("mode")
.help("If jade should automatically partition (mode = auto) or the user manually partitioned it (mode = manual)")
.required(true),
)
.arg(
Arg::with_name("root")
.help("The root partition to use (only read if mode is manual)")
.required_if("mode", "manual"),
)
.arg(
Arg::with_name("boot")
.help("The boot partition to use (only read if mode is manual)")
.required_if("mode", "manual"),
)
.arg(
Arg::with_name("swap")
.help("The swap partition to use (only read if mode is manual)")
.required_if("mode", "manual"),
),
)
.subcommand(
SubCommand::with_name("timezone")
.about("Set the timezone")
.arg(
Arg::with_name("timezone")
.help("The timezone to set")
.required(true),
),
)
.subcommand(
SubCommand::with_name("locales")
.about("Set the locales")
.arg(
Arg::with_name("locales")
.help("The locales to set")
.multiple(true)
.index(1)
.required(true),
),
)
.subcommand(
SubCommand::with_name("hostname")
.about("Set the hostname")
.arg(
Arg::with_name("hostname")
.help("The hostname to set")
.required(true),
),
)
.subcommand(
SubCommand::with_name("ipv6")
.about("Activate IPv6")
.arg(
Arg::with_name("ipv6")
.help("If ipv6 should be activated")
.required(true),
),
)
.subcommand(
SubCommand::with_name("rootPass")
.about("Set the root password")
.arg(
Arg::with_name("rootPass")
.help("The root password to set")
.required(true),
),
)
.subcommand(
SubCommand::with_name("newUser")
.about("Create a new user")
.arg(
Arg::with_name("username")
.help("The username to create")
.required(true),
)
.arg(
Arg::with_name("password")
.help("The password to set")
.required(true),
)
)
.subcommand(
SubCommand::with_name("graphical")
.about("Graphical stuff (Desktop environment and Display Manager)")
.arg(
Arg::with_name("de")
.help("The Desktop envionment to install")
.required(true),
)
.arg(
Arg::with_name("dm")
.help("The Display Manager to install")
.required(true),
),
)
.subcommand(
SubCommand::with_name("flatpak")
.about("Flatpak")
.arg(
Arg::with_name("flatpak")
.help("If flatpak should be installed")
.required(true),
),
)
)
.get_matches();
}