| 57 | UIOverrideOption UIOption {UIOverrideOption::Default}; |
| 58 | |
| 59 | void ParseArguments(int argc, char** argv) { |
| 60 | optparse::OptionParser Parser = optparse::OptionParser().description("Tool for fetching RootFS from FEXServers").add_help_option(true); |
| 61 | |
| 62 | Parser.add_option("-y", "--assume-yes").action("store_true").help("Assume yes to prompts"); |
| 63 | |
| 64 | Parser.add_option("-x", "--extract").action("store_true").help("Extract compressed image"); |
| 65 | |
| 66 | Parser.add_option("-a", "--as-is").action("store_true").help("Use compressed image as-is"); |
| 67 | |
| 68 | Parser.add_option("--distro-name").help("Which distro name to select"); |
| 69 | |
| 70 | Parser.add_option("--distro-version").help("Which distro version to select"); |
| 71 | |
| 72 | Parser.add_option("--distro-list-first").action("store_true").help("When presented the distro-list option, automatically select the first distro if there isn't an exact match."); |
| 73 | |
| 74 | Parser.add_option("--force-ui").choices({"default", "tty", "zenity"}).set_default("default").help("Override which UI to use for selection"); |
| 75 | |
| 76 | optparse::Values Options = Parser.parse_args(argc, argv); |
| 77 | |
| 78 | if (Options.is_set_by_user("assume_yes")) { |
| 79 | AssumeYes = Options.get("assume_yes"); |
| 80 | } |
| 81 | |
| 82 | if (Options.is_set_by_user("extract")) { |
| 83 | CompressedUsageOption = CompressedImageOption::OPTION_EXTRACT; |
| 84 | } |
| 85 | |
| 86 | if (Options.is_set_by_user("as_is")) { |
| 87 | CompressedUsageOption = CompressedImageOption::OPTION_ASIS; |
| 88 | } |
| 89 | |
| 90 | if (Options.is_set_by_user("distro_list_first")) { |
| 91 | DistroListOption = ListQueryOption::OPTION_FIRST; |
| 92 | } |
| 93 | |
| 94 | if (Options.is_set_by_user("distro_name")) { |
| 95 | DistroName = Options["distro_name"]; |
| 96 | } |
| 97 | |
| 98 | if (Options.is_set_by_user("distro_version")) { |
| 99 | DistroVersion = Options["distro_version"]; |
| 100 | } |
| 101 | |
| 102 | if (Options.is_set_by_user("force_ui")) { |
| 103 | const auto& Option = Options["force_ui"]; |
| 104 | if (Option == "tty") { |
| 105 | UIOption = UIOverrideOption::TTY; |
| 106 | } else if (Option == "zenity") { |
| 107 | UIOption = UIOverrideOption::Zenity; |
| 108 | } |
| 109 | } |
| 110 | |
| 111 | RemainingArgs = Parser.args(); |
| 112 | } |
| 113 | } // namespace ArgOptions |
| 114 | |
| 115 | namespace Exec { |