diff options
author | John Letey <johnletey@gmail.com> | 2020-04-26 14:58:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-26 15:58:39 +0200 |
commit | a3fef5becf82481fb91f29799d4d53d9b3711a65 (patch) | |
tree | 8a141c6dd8e12466e86d986634e96981c13698e3 /src/main.rs | |
parent | decd4e2a5d74175c9bd6370a1cf9980b18cb6970 (diff) |
feat: Modify config keys from shell (#1095)
* feat: Modify config keys from shell
* chore: Fix clippy
* refactor: Add `configure` as alias
* chore: Remove redundant code
* fix: Soft error if user doesn't pass in valid key
* feat: Support integers and booleans
* chore: Fix clippy
* refactor: Use exit instead of abort
Co-Authored-By: Thomas O'Donnell <andytom@users.noreply.github.com>
Co-authored-by: Thomas O'Donnell <andytom@users.noreply.github.com>
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs index 1ae1eca0a..c3d1d47cb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -116,7 +116,18 @@ fn main() { .arg(&keymap_arg) .arg(&jobs_arg), ) - .subcommand(SubCommand::with_name("configure").about("Edit the starship configuration")) + .subcommand( + SubCommand::with_name("config") + .alias("configure") + .about("Edit the starship configuration") + .arg( + Arg::with_name("name") + .help("Configuration key to edit") + .required(false) + .requires("value"), + ) + .arg(Arg::with_name("value").help("Value to place into that key")), + ) .subcommand(SubCommand::with_name("bug-report").about( "Create a pre-populated GitHub issue with information about your configuration", )) @@ -152,7 +163,15 @@ fn main() { print::module(module_name, sub_m.clone()); } } - ("configure", Some(_)) => configure::edit_configuration(), + ("config", Some(sub_m)) => { + if let Some(name) = sub_m.value_of("name") { + if let Some(value) = sub_m.value_of("value") { + configure::update_configuration(name, value) + } + } else { + configure::edit_configuration() + } + } ("bug-report", Some(_)) => bug_report::create(), ("time", _) => { match SystemTime::now() |