diff --git a/src/uu/mountpoint/src/mountpoint.rs b/src/uu/mountpoint/src/mountpoint.rs index 54fa2e8..5a41a0b 100644 --- a/src/uu/mountpoint/src/mountpoint.rs +++ b/src/uu/mountpoint/src/mountpoint.rs @@ -3,6 +3,7 @@ // For the full copyright and license information, please view the LICENSE // file that was distributed with this source code. +use clap::Arg; use clap::{crate_version, Command}; use std::env; use std::fs; @@ -15,20 +16,21 @@ const USAGE: &str = help_usage!("mountpoint.md"); #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let args: Vec<String> = env::args().collect(); + let matches: clap::ArgMatches = uu_app().try_get_matches_from(args)?; + let path = matches.get_one::<String>("path"); - if args.len() != 2 { - eprintln!("Usage: mountpoint <path>"); + if let Some(path) = path { + if is_mountpoint(path) { + println!("{} is a mountpoint", path); + } else { + println!("{} is not a mountpoint", path); + } + } else { + // Handle the case where path is not provided + eprintln!("Error: Path argument is required"); process::exit(1); } - - let path = &args[1]; - if is_mountpoint(path) { - println!("{} is a mountpoint", path); - } else { - println!("{} is not a mountpoint", path); - } - Ok(()) + Ok(()) } fn is_mountpoint(path: &str) -> bool { @@ -54,4 +56,10 @@ pub fn uu_app() -> Command { .about(ABOUT) .override_usage(format_usage(USAGE)) .infer_long_args(true) + + .arg(Arg::new("path") + .value_name("PATH") + .help("Path to check for mountpoint") + .required(true) + .index(1)) }