diff --git a/Taskfile.yaml b/Taskfile.yaml new file mode 100644 index 0000000..9052a71 --- /dev/null +++ b/Taskfile.yaml @@ -0,0 +1,5 @@ +version: '3' + +tasks: + cmds: + - cargo run diff --git a/src/configs/digitalocean_app_spec.yaml b/src/configs/digitalocean_app_spec.yaml new file mode 100644 index 0000000..3508d07 --- /dev/null +++ b/src/configs/digitalocean_app_spec.yaml @@ -0,0 +1,323 @@ +# Official documentation: https://docs.digitalocean.com/products/app-platform/reference/app-spec/ + +jobs: + - envs: + - value: + scope + type + key + instance_count + name + image + registry_type + registry + repository + tag + deploy_on_push + enabled + dockerfile_path + run_command + source_dir + alerts (array) + rule + disabled + operator + value + window + github + repo + branch + deploy_on_push + gitlab + repo + branch + deploy_on_push + build_command + instance_size_slug + log_destinations (array) + name + papertrail + endpoint + datadog + endpoint + api_key + logtail + token + git + repo_clone_url + branch + environment_slug + kind + +functions (array) + + name + source_dir + alerts (array) + rule + disabled + operator + value + window + log_destinations (array) + name + papertrail + endpoint + datadog + endpoint + api_key + logtail + token + routes (array) + path + preserve_path_prefix + cors + allow_headers (array) + expose_headers (array) + max_age + allow_credentials + allow_origins (array) + exact + prefix + regex + allow_methods (array) + git + repo_clone_url + branch + github + repo + branch + deploy_on_push + gitlab + repo + branch + deploy_on_push + envs (array) + value + scope + type + key + +domains (array) + + wildcard + zone + minimum_tls_version + domain + type + +ingress + + rules (array) + match + path + prefix + component + name + preserve_path_prefix + rewrite + redirect + uri + authority + port + scheme + redirect_code + cors + allow_headers (array) + expose_headers (array) + max_age + allow_credentials + allow_origins (array) + exact + prefix + regex + allow_methods (array) + +databases (array) + + engine + version + cluster_name + db_user + name + production + db_name + +region +envs (array) + + value + scope + type + key + +alerts (array) + + rule + disabled + operator + value + window + +name +services (array) + + health_check + period_seconds + timeout_seconds + success_threshold + failure_threshold + http_path + port + initial_delay_seconds + cors + allow_headers (array) + expose_headers (array) + max_age + allow_credentials + allow_origins (array) + exact + prefix + regex + allow_methods (array) + log_destinations (array) + name + papertrail + endpoint + datadog + endpoint + api_key + logtail + token + git + repo_clone_url + branch + github + repo + branch + deploy_on_push + build_command + envs (array) + value + scope + type + key + source_dir + instance_size_slug + http_port + routes (array) + path + preserve_path_prefix + internal_ports (array) + gitlab + repo + branch + deploy_on_push + alerts (array) + rule + disabled + operator + value + window + instance_count + name + image + registry_type + registry + repository + tag + deploy_on_push + enabled + dockerfile_path + run_command + environment_slug + +static_sites (array) + + cors + allow_headers (array) + expose_headers (array) + max_age + allow_credentials + allow_origins (array) + exact + prefix + regex + allow_methods (array) + catchall_document + index_document + gitlab + repo + branch + deploy_on_push + build_command + output_dir + github + repo + branch + deploy_on_push + environment_slug + error_document + git + repo_clone_url + branch + dockerfile_path + source_dir + envs (array) + value + scope + type + key + routes (array) + path + preserve_path_prefix + name + +workers (array) + + git + repo_clone_url + branch + github + repo + branch + deploy_on_push + run_command + source_dir + image + registry_type + registry + repository + tag + deploy_on_push + enabled + environment_slug + instance_size_slug + log_destinations (array) + name + papertrail + endpoint + datadog + endpoint + api_key + logtail + token + gitlab + repo + branch + deploy_on_push + dockerfile_path + build_command + envs (array) + value + scope + type + key + instance_count + alerts (array) + rule + disabled + operator + value + window + name diff --git a/src/configs/mod.rs b/src/configs/mod.rs new file mode 100644 index 0000000..e69de29 diff --git a/src/main.rs b/src/main.rs index 7da3a48..f687f36 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,34 @@ +use clap::{Parser, ValueEnum}; + +#[derive(Debug, Parser)] +#[command(author, version, about, long_about = None)] +/// Templater is a tool to help you get started quickly configuring cloud apps, libraries, +/// and frameworks. +struct Args { + /// run `templater list` to see all available options. + #[arg(value_enum)] + config: Config, + + #[clap(short, long)] + /// whether or not to output in the current directory + output_file: bool, +} + +#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum)] +enum Config { + DigitalOceanApp, + Kubernetes, +} fn main() { - println!("Hello, world!"); + let args = Args::parse(); + + match args.config { + Config::DigitalOceanApp => { + let config = std::fs::read_to_string("./src/configs/digitalocean_app_spec.yaml").unwrap(); + println!("{}", config); + }, + Config::Kubernetes => println!("lib2"), + _ => println!("please choose from the following"), + } }