forked from github-starred/komodo
* setup network page * add Network, Image, Container * Docker ListItems and Inspects * frontend build * dev0 * network info working * fix cargo lock * dev1 * pages for the things * implement Active in dashboard * RunBuild update trigger list refresh * rename deployment executions to StartDeployment etc * add server level container control * dev2 * add Config field to Image * can get image labels from Config.Labels * mount container page * server show resource count * add GetContainerLog api * add _AllContainers api * dev3 * move ResourceTarget to entities mod * GetResourceMatchingContainer api * connect container to resource * dev4 add volume names to container list items * ts types * volume / image / network unused management * add image history to image page * fix PruneContainers incorret Operation * update cache for server for server after server actions * dev5 * add singapore to Hetzner * implement delete single network / image / volume api * dev6 * include "in use" on Docker Lists * add docker resource delete buttons * is nice * fix volume all in use * remove google font dependency * use host networking in test compose * implement Secret Variables (hidden in logs) * remove unneeded borrow * interpolate variables / secrets into extra args / onclone / onpull / command etc * validate empty strings before SelectItem * rename everything to Komodo * rename workspace to komodo * rc1
56 lines
1.3 KiB
Rust
56 lines
1.3 KiB
Rust
use clap::{Parser, Subcommand};
|
|
use komodo_client::api::execute::Execution;
|
|
use serde::Deserialize;
|
|
|
|
#[derive(Parser, Debug)]
|
|
#[command(version, about, long_about = None)]
|
|
pub struct CliArgs {
|
|
/// Sync or Exec
|
|
#[command(subcommand)]
|
|
pub command: Command,
|
|
|
|
/// The path to a creds file.
|
|
///
|
|
/// Note: If each of `url`, `key` and `secret` are passed,
|
|
/// no file is required at this path.
|
|
#[arg(long, default_value_t = default_creds())]
|
|
pub creds: String,
|
|
|
|
/// Pass url in args instead of creds file
|
|
#[arg(long)]
|
|
pub url: Option<String>,
|
|
/// Pass api key in args instead of creds file
|
|
#[arg(long)]
|
|
pub key: Option<String>,
|
|
/// Pass api secret in args instead of creds file
|
|
#[arg(long)]
|
|
pub secret: Option<String>,
|
|
|
|
/// Always continue on user confirmation prompts.
|
|
#[arg(long, short, default_value_t = false)]
|
|
pub yes: bool,
|
|
}
|
|
|
|
fn default_creds() -> String {
|
|
let home =
|
|
std::env::var("HOME").unwrap_or_else(|_| String::from("/root"));
|
|
format!("{home}/.config/komodo/creds.toml")
|
|
}
|
|
|
|
#[derive(Debug, Clone, Subcommand)]
|
|
pub enum Command {
|
|
/// Runs an execution
|
|
Execute {
|
|
#[command(subcommand)]
|
|
execution: Execution,
|
|
},
|
|
// Room for more
|
|
}
|
|
|
|
#[derive(Debug, Deserialize)]
|
|
pub struct CredsFile {
|
|
pub url: String,
|
|
pub key: String,
|
|
pub secret: String,
|
|
}
|