rucksack 0.9.0

A terminal-based secrets manager, generator, and importer/exporter (Firefox, Chrome) backed with a concurrent hashmap
Documentation
//! # Install
//!
//! The project CI/CD pipeline is not currently building binary executables for
//! download, so you must have `rust` and `cargo` installed. Then you may
//! install the latest version of `rucksack` with the following:
//!
//! ```shell
//! cargo install rucksack
//! ```
//!
//! # Getting Started
//!
//! The quickest way to get started is to explore the CLI help text:
//!
//! ```shell
//! rucksack help
//! ```
//!
//!
//! ```text
//! rucksack: A terminal-based secrets manager, generator, and importer/exporter (Firefox, Chrome) backed with a concurrent hashmap
//!
//! Usage: rucksack [OPTIONS] [COMMAND]
//!
//! Commands:
//! add      Add a new secret
//! backup   Operations related to the a single backup of the secrets DB; used with no subcommand, perform a backup
//! backups  Operations related to multiple backups of the secrets DB
//! config   Operations related to rucksack configuration
//! delete   Delete a single record [aliases: rm, remove]
//! export   Export the rucksack db
//! gen      Generate a secret
//! import   Pull in secrets from other sources
//! list     List all secrets
//! set      Perform various 'write' operations
//! show     Display rucksack-specific information
//! start    Run rucksack as a daemon, enabling local network syncing services
//! help     Print this message or the help of the given subcommand(s)
//!
//! Options:
//!       --config-file <config-file>  The path to the config file to use or create [default: "<user config dir>/rucksack/config.toml"]
//!       --log-level <log-level>      Override the configured log-level setting [default: ] [possible values: error, warn, info, debug, trace, ]
//!       --completions <SHELL>        Emit shell tab completions [possible values: bash, elvish, fish, powershell, zsh]
//!   -v, --version                    Print version information
//!   -h, --help                       Print help
//! ```
//!
//! # Example Usage
//!
//! Be sure to see the documentation for the following `rucksack` CLI subcommands
//! here:
//! * [add](handlers/add/index.html)
//! * [backup](handlers/backup/index.html)
//! * [completions](handlers/completions/index.html)
//! * [config](handlers/config/index.html)
//! * [export](handlers/export/index.html)
//! * [gen](handlers/gen/index.html)
//! * [help](handlers/help/index.html)
//! * [import](handlers/import/index.html)
//! * [list](handlers/list/index.html)
//! * [rm](handlers/rm/index.html)
//! * [set](handlers/set/index.html)
//! * [show](handlers/show/index.html)
//! * [version](handlers/version/index.html)
//!
//! # License
//!
//! Copyright © 2022-2023, Oxur Group
//!
//! Apache License, Version 2.0
//!
#[doc(hidden)]
pub mod app;
pub mod command;
#[doc(hidden)]
pub mod input;
#[doc(hidden)]
pub mod output;
pub mod service;
#[doc(hidden)]
pub use app::App;

pub fn version() -> versions::SemVer {
    versions::SemVer::new(env!("CARGO_PKG_VERSION")).unwrap()
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_version() {
        let ver = version();
        assert_eq!(ver.major, 0);
        assert!(ver.minor >= 9);
    }

    #[test]
    fn test_app_reexport() {
        // Just verify App type is accessible
        // Can't instantiate without complex setup
        assert!(true);
    }
}