[package] name = "prs-cli" version = "0.5.2" authors = ["Tim Visee <3a4fb3964f@sinenomine.email>"] license = "GPL-3.0" readme = "../README.md" homepage = "https://timvisee.com/projects/prs" repository = "https://gitlab.com/timvisee/prs" description = "Secure, fast & convenient password manager CLI with GPG & git sync" keywords = ["pass", "passwordstore"] categories = [ "authentication", "command-line-utilities", "cryptography", ] edition = "2018" rust-version = "1.81.0" default-run = "prs" [[bin]] name = "prs" path = "./src/main.rs" [features] default = ["backend-gnupg-bin", "alias", "clipboard", "notify", "select-skim", "select-fzf-bin", "tomb", "totp"] ### Regular features # Option (default): alias management (symlink) support alias = [] # Option (default): clipboard support (copy password to clipboard) clipboard = ["copypasta-ext", "x11-clipboard", "base64"] # Option (default): notification support (clipboard notifications) notify = ["notify-rust"] # Option (default): tomb support for password store on Linux tomb = ["prs-lib/tomb", "bytesize", "fs_extra"] # Option (default): TOTP token support totp = ["totp-rs", "linkify", "qr2term"] ### Pluggable cryptography backends # Option: GnuPG cryptography backend using GPGME backend-gpgme = ["prs-lib/backend-gpgme"] # Option (default): GnuPG cryptography backend using gpg binary backend-gnupg-bin = ["prs-lib/backend-gnupg-bin"] ### Pluggable interactive selection systems # Option (default): interactive selection with skim (ignored on Windows) select-skim = ["skim"] # Option: interactive selection with skim binary select-skim-bin = [] # Option: interactive selection with fzf binary select-fzf-bin = [] [dependencies] ansi-escapes = "0.2" anyhow = "1.0" chbs = "0.1" clap = { version = "4.1", default-features = false, features = ["std", "help", "suggestions", "color", "usage", "cargo", "env"] } clap_complete = "4.1" colored = "2.0" crossterm = { version = "0.28", default-features = false, features = ["events", "windows"] } derive_builder = "0.20" edit = "0.1" indicatif = "0.17" lazy_static = "1.4" prs-lib = { version = "=0.5.2", path = "../lib", default-features = false } rand = { version = "0.8", default-features = false, features = ["std"] } regex = { version = "1.7", default-features = false, features = ["std", "unicode-perl"] } shellexpand = "3.0" shlex = "1.3" substring = "1.4.5" text_trees = "0.1" thiserror = "2.0" walkdir = "2.3" which = "7.0" # Notification support notify-rust = { version = "4.7", optional = true } # Tomb support bytesize = { version = "1.1", optional = true } fs_extra = { version = "1.2", optional = true } # TOTP support totp-rs = { version = "5.5", optional = true, default-features = false, features = ["otpauth", "steam"] } linkify = { version = "0.10", optional = true } qr2term = { version = "0.3", optional = true } # Clipboard support base64 = { version = "0.22", optional = true } # Clipboard support for non-X11/Wayland [target.'cfg(not(all(unix, not(any(target_os="macos", target_os="android", target_os="emscripten")))))'.dependencies] copypasta-ext = { version = "0.4.1", optional = true, default-features = false } # Clipboard support for X11/Wayland [target.'cfg(all(unix, not(any(target_os="macos", target_os="android", target_os="emscripten")), not(target_env = "musl")))'.dependencies] copypasta-ext = { version = "0.4.1", optional = true, default-features = false, features = ["wayland-bin"] } x11-clipboard = { version = "0.7", optional = true } # Clipboard support for X11/Wayland musl [target.'cfg(all(unix, not(any(target_os="macos", target_os="android", target_os="emscripten")), target_env = "musl"))'.dependencies] copypasta-ext = { version = "0.4.1", optional = true, default-features = false, features = ["x11-bin", "wayland-bin"] } # Interactive selection with skim on unix platforms [target.'cfg(unix)'.dependencies] skim = { version = "0.10", optional = true, default-features = false } # Directory logic on Windows [target.'cfg(windows)'.dependencies] dirs-next = "2.0"