use eyre::{Result, eyre};
use crate::cli::settings::set::set;
#[derive(Debug, clap::Args)]
#[clap(after_long_help = AFTER_LONG_HELP, verbatim_doc_comment)]
pub struct SettingsAdd {
#[clap()]
pub setting: String,
pub value: Option<String>,
#[clap(long, short)]
pub local: bool,
}
impl SettingsAdd {
pub fn run(self) -> Result<()> {
match self.value {
Some(value) => set(&self.setting, &value, true, self.local),
None => {
let (key, value) = self.setting.split_once('=').ok_or_else(|| {
eyre!(
"Usage: mise settings add <KEY>=<VALUE> or mise settings add <KEY> <VALUE>"
)
})?;
set(key, value, true, self.local)
}
}
}
}
static AFTER_LONG_HELP: &str = color_print::cstr!(
r#"<bold><underline>Examples:</underline></bold>
$ <bold>mise settings add disable_hints python_multi</bold>
"#
);