##// END OF EJS Templates
commands: add admin namespace...
commands: add admin namespace In order to stop abusing the 'debug' namespace for non-debug command, it adds a new 'admin' namespace dedicated to 'admin' operations on a repository (i.e commands suitable for administration tasks). This namespace entry would be used to migrate in the future some existing commands from the 'debug' namespace, or other top level commands that may not be directly exposed to end users. (verify command is a perfect candidate for this case)

File last commit:

r50534:37bc3ede default
r51880:727428c7 default
Show More
config.rs
37 lines | 1.0 KiB | application/rls-services+xml | RustLexer
use crate::error::CommandError;
use clap::Arg;
use format_bytes::format_bytes;
use hg::errors::HgError;
use hg::utils::SliceExt;
pub const HELP_TEXT: &str = "
With one argument of the form section.name, print just the value of that config item.
";
pub fn args() -> clap::Command {
clap::command!("config")
.arg(
Arg::new("name")
.help("the section.name to print")
.value_name("NAME")
.required(true),
)
.about(HELP_TEXT)
}
pub fn run(invocation: &crate::CliInvocation) -> Result<(), CommandError> {
let (section, name) = invocation
.subcommand_args
.get_one::<String>("name")
.expect("missing required CLI argument")
.as_bytes()
.split_2(b'.')
.ok_or_else(|| HgError::unsupported("hg config <section>"))?;
if let Some(value) = invocation.config.get(section, name) {
invocation.ui.write_stdout(&format_bytes!(b"{}\n", value))?;
Ok(())
} else {
Err(CommandError::Unsuccessful)
}
}