#permissions #clap #clap-parser #flags #unix #stub #cli

clap-permission-flag

使用 clap 降低 CLI 的权限

3 个版本 (重大更新)

0.3.0 2022年9月29日
0.2.0 2019年4月20日
0.1.0 2018年8月6日

#8 in #stub

MIT/Apache

18KB
83 代码行

clap-permission-flag

crates.io version build status downloads docs.rs docs

使用 structopt 降低 CLI 的权限。

用法

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(())
}

此 crate 依赖于 Unix 功能 - 在其他平台上,使用无标志且始终成功的存根实现。

示例输出

clap-permission-flag 0.2.0
Yoshua Wuyts <[email protected]>
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

安装

$ cargo add clap-permission-flag

由于 --chroot 可能不适合所有应用程序,它位于 chroot 功能之后,并且必须明确启用。

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

另请参阅

许可证

MITApache-2.0

依赖关系

~3.5MB
~69K SLoC