From ff8a83b256b1983c56d85933fa0d869046a503d9 Mon Sep 17 00:00:00 2001 From: Hanif Ariffin Date: Thu, 3 Feb 2022 21:10:39 +0800 Subject: [PATCH] touch: Better error message when no args is given Matches the behavior of GNU touch ```shell hbina@akarin ~/g/uutils (hbina-realpath-absolute-symlinks)> touch > /dev/null touch: missing file operand Try 'touch --help' for more information. hbina@akarin ~/g/uutils (hbina-realpath-absolute-symlinks) [1]> cargo run --quiet -- touch > /dev/null touch: missing file operand Try 'touch --help' for more information. hbina@akarin ~/g/uutils (hbina-realpath-absolute-symlinks) [1]> cargo run --quiet -- touch 2> /dev/null hbina@akarin ~/g/uutils (hbina-realpath-absolute-symlinks) [1]> touch 2> /dev/null ``` Signed-off-by: Hanif Ariffin --- src/uu/touch/src/touch.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/uu/touch/src/touch.rs b/src/uu/touch/src/touch.rs index b1df1aca4..32dd4817d 100644 --- a/src/uu/touch/src/touch.rs +++ b/src/uu/touch/src/touch.rs @@ -58,7 +58,11 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { let matches = uu_app().override_usage(&usage[..]).get_matches_from(args); - let files = matches.values_of_os(ARG_FILES).unwrap(); + let files = matches.values_of_os(ARG_FILES).ok_or(USimpleError::new( + 1, + r##"missing file operand +Try 'touch --help' for more information."##, + ))?; let (mut atime, mut mtime) = if let Some(reference) = matches.value_of_os(options::sources::REFERENCE) {