diff rust/rhg/src/commands/config.rs @ 46592:80840b651721

rhg: Group values passed to every sub-command into a struct The set of which values this is is evidently not stable yet, so this will make changes easier. Also it is growing, and the function signatures are getting out hand. Differential Revision: https://phab.mercurial-scm.org/D10003
author Simon Sapin <simon.sapin@octobus.net>
date Mon, 15 Feb 2021 20:05:32 +0100
parents a25033eb43b5
children 5ce2aa7c2ad5
line wrap: on
line diff
--- a/rust/rhg/src/commands/config.rs	Fri Feb 12 16:54:30 2021 +0100
+++ b/rust/rhg/src/commands/config.rs	Mon Feb 15 20:05:32 2021 +0100
@@ -1,13 +1,9 @@
 use crate::error::CommandError;
-use crate::ui::Ui;
 use clap::Arg;
-use clap::ArgMatches;
 use format_bytes::format_bytes;
-use hg::config::Config;
 use hg::errors::HgError;
 use hg::repo::Repo;
 use hg::utils::SliceExt;
-use std::path::Path;
 
 pub const HELP_TEXT: &str = "
 With one argument of the form section.name, print just the value of that config item.
@@ -25,20 +21,16 @@
         .about(HELP_TEXT)
 }
 
-pub fn run(
-    ui: &Ui,
-    config: &Config,
-    repo_path: Option<&Path>,
-    args: &ArgMatches,
-) -> Result<(), CommandError> {
-    let opt_repo = Repo::find_optional(config, repo_path)?;
+pub fn run(invocation: &crate::CliInvocation) -> Result<(), CommandError> {
+    let opt_repo =
+        Repo::find_optional(invocation.non_repo_config, invocation.repo_path)?;
     let config = if let Some(repo) = &opt_repo {
         repo.config()
     } else {
-        config
+        invocation.non_repo_config
     };
-
-    let (section, name) = args
+    let (section, name) = invocation
+        .subcommand_args
         .value_of("name")
         .expect("missing required CLI argument")
         .as_bytes()
@@ -47,6 +39,6 @@
 
     let value = config.get(section, name).unwrap_or(b"");
 
-    ui.write_stdout(&format_bytes!(b"{}\n", value))?;
+    invocation.ui.write_stdout(&format_bytes!(b"{}\n", value))?;
     Ok(())
 }