knowledge 0.12.0

The launcher and updater for Knowledge.Dev Workbench
Documentation
use clap::{Parser, Subcommand};

#[derive(Debug, Parser)]
#[command(author, version, about, long_about = None)]
pub struct Opts {
    #[command(subcommand)]
    pub command: Option<AppCommand>,
}

#[derive(Debug, Subcommand)]
pub enum AppCommand {
    /// Removes the cache folder
    Clean,
    /// Updates binaries to newer versions (skips if already up to date)
    Update(UpdateCommand),
    /// Re-downloads binaries regardless of the current version
    Upgrade(UpdateCommand),
    /// Launches the workbench application
    Workbench,
}

#[derive(Debug, Parser, Clone)]
pub struct UpdateCommand {
    /// Override an operating system of downloading assets
    #[clap(long, short)]
    pub system: Option<String>,
}