#permissions #clap-parser #flags #unix #stub #io #structopt

clap-permission-flag

Drop permissions of a CLI using clap

3 releases (breaking)

0.3.0 Sep 29, 2022
0.2.0 Apr 20, 2019
0.1.0 Aug 6, 2018

#1 in #structopt

MIT/Apache

18KB
83 lines

clap-permission-flag

crates.io version build status downloads docs.rs docs

Drop permissions of a CLI using structopt.

Usage

use clap::Parser;

#[derive(Debug, Parser)]
struct Cli {
    #[clap(flatten)]
    permission: clap_permission_flag::Permission,
}

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let args = Cli::parse();
    args.permission.drop()?;
    Ok(())
}

This crate depends on Unix features - on other platforms a stub implementation which has no flags and always succeeds if used.

Example Output

clap-permission-flag 0.2.0
Yoshua Wuyts <yoshuawuyts@gmail.com>
Drop permissions of a CLI using structopt

USAGE:
    main [OPTIONS]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
        --chroot <chroot>    Change the process root directory
    -g, --group <group>      Change the process group
    -u, --user <user>        Change the process user

Installation

$ cargo add clap-permission-flag

Since --chroot may not be suitable for all applications, it is behind the chroot feature and must be enabled explicitly:

[dependencies.clap-permission-flag]
version = "0.2"
features = ["chroot"]

See Also

License

MIT OR Apache-2.0

Dependencies

~3.5MB
~69K SLoC