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.
CleanFlashInstaller/rust/crates/clean_flash_installer/src/cli_args.rs

71 lines
1.6 KiB
Rust

use argh::FromArgs;
/// Clean Flash Player Installer
///
/// Install Clean Flash Player with GUI, TUI, or silent mode.
#[derive(FromArgs)]
pub struct InstallerArgs {
/// use the terminal UI (ratatui) instead of the graphical window
#[argh(switch)]
pub cli: bool,
/// run the installation non-interactively (no GUI or TUI)
#[argh(switch)]
pub install: bool,
/// suppress all output (only valid with --install)
#[argh(switch)]
pub silent: bool,
/// install the Modern Browsers (MV3) native host
#[argh(switch)]
pub native_host: bool,
/// install the Pepper API (PPAPI) plugin
#[argh(switch)]
pub pepper: bool,
/// install the Netscape API (NPAPI) plugin
#[argh(switch)]
pub netscape: bool,
/// install the ActiveX (OCX) plugin
#[argh(switch)]
pub activex: bool,
/// install the standalone Flash Player
#[argh(switch)]
pub player: bool,
/// create desktop shortcuts for standalone player (requires --player)
#[argh(switch)]
pub player_desktop: bool,
/// create start menu shortcuts for standalone player (requires --player)
#[argh(switch)]
pub player_start_menu: bool,
/// install the debug version
#[argh(switch)]
pub debug: bool,
}
/// The mode in which the application should run.
pub enum RunMode {
Gui,
Tui,
Silent,
}
impl InstallerArgs {
pub fn determine_mode(&self) -> RunMode {
if self.install {
RunMode::Silent
} else if self.cli {
RunMode::Tui
} else {
RunMode::Gui
}
}
}