use clap::{Parser, Subcommand}; use radicle::node::Alias; const ABOUT: &str = "Manage your local Radicle configuration"; const LONG_ABOUT: &str = r#" If no argument is specified, prints the current Radicle configuration as JSON. To initialize a new configuration file, use `rad config init`. "#; #[derive(Debug, Parser)] #[command(about = ABOUT, long_about = LONG_ABOUT, disable_version_flag = true)] pub struct Args { #[command(subcommand)] pub(crate) command: Option, } #[derive(Subcommand, Debug)] #[group(multiple = false)] pub(crate) enum Command { /// Show the current Radicle configuration as JSON (default) Show, /// Initialize a new config file Init { /// Alias to use for the new configuration #[arg(long)] alias: Alias, }, /// Open the config in your editor Edit, /// Get a value from the current configuration // Command is obsolete. #[command(hide = true)] Get { /// The JSON key path to the value you want to get key: String, }, /// Prints the JSON Schema of the Radicle configuration Schema, /// Set a key to a value in the current configuration // Command is obsolete. #[command(hide = true)] Set { /// The JSON key path to the value you want to set key: String, /// The JSON value used to set the field value: String, }, /// Set a key in the current configuration to `null` // Command is obsolete. #[command(hide = true)] Unset { /// The JSON key path to the value you want to unset key: String, }, /// Push a value onto an array, which is identified by the key, in the /// current configuration // Command is obsolete. #[command(hide = true)] Push { /// The JSON key path to the array you want to push to key: String, /// The JSON value being pushed onto the array value: String, }, /// Remove a value from an array, which is identified by the key, in the /// current configuration /// /// All instances of the value in the array will be removed // Command is obsolete. #[command(hide = true)] Remove { /// The JSON key path to the array you want to push to key: String, /// The JSON value being pushed onto the array value: String, }, }