Mercurial > hg-stable
changeset 48089:f11f233546ce
rhg: fallback if the current command has any generic hook defined
We do not handle hooks yet.
Differential Revision: https://phab.mercurial-scm.org/D11380
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Wed, 01 Sep 2021 17:41:51 +0200 |
parents | 4a6fa6b6f079 |
children | b44e1184b7e1 |
files | rust/rhg/src/main.rs tests/test-rhg.t |
diffstat | 2 files changed, 24 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/rust/rhg/src/main.rs Wed Sep 01 17:41:08 2021 +0200 +++ b/rust/rhg/src/main.rs Wed Sep 01 17:41:51 2021 +0200 @@ -68,6 +68,17 @@ let matches = app.clone().get_matches_safe()?; let (subcommand_name, subcommand_matches) = matches.subcommand(); + + for prefix in ["pre", "post", "fail"].iter() { + // Mercurial allows users to define generic hooks for commands, + // fallback if any are detected + let item = format!("{}-{}", prefix, subcommand_name); + let hook_for_command = config.get_str(b"hooks", item.as_bytes())?; + if hook_for_command.is_some() { + let msg = format!("{}-{} hook defined", prefix, subcommand_name); + return Err(CommandError::unsupported(msg)); + } + } let run = subcommand_run_fn(subcommand_name) .expect("unknown subcommand name from clap despite AppSettings::SubcommandRequired"); let subcommand_args = subcommand_matches
--- a/tests/test-rhg.t Wed Sep 01 17:41:08 2021 +0200 +++ b/tests/test-rhg.t Wed Sep 01 17:41:51 2021 +0200 @@ -215,6 +215,19 @@ unsupported feature: fileset [252] +Fallback with generic hooks + $ $NO_FALLBACK rhg cat original --config hooks.pre-cat=something + unsupported feature: pre-cat hook defined + [252] + + $ $NO_FALLBACK rhg cat original --config hooks.post-cat=something + unsupported feature: post-cat hook defined + [252] + + $ $NO_FALLBACK rhg cat original --config hooks.fail-cat=something + unsupported feature: fail-cat hook defined + [252] + Requirements $ $NO_FALLBACK rhg debugrequirements dotencode