From f84d5391efc2ff5326c8d4807cc8ea72d1e0641c Mon Sep 17 00:00:00 2001 From: Yarmo Mackenbach Date: Thu, 14 Apr 2022 14:07:21 +0200 Subject: Initial commit --- Makefile | 20 ++ build/yy | 592 +++++++++++++++++++++++++++++++++++++++++ src/bashly.yml | 30 +++ src/caddy_gen_command.sh | 2 + src/caddy_pw_command.sh | 1 + src/dc_update_command.sh | 5 + src/initialize.sh | 0 yy | 670 +++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 1320 insertions(+) create mode 100644 Makefile create mode 100755 build/yy create mode 100644 src/bashly.yml create mode 100644 src/caddy_gen_command.sh create mode 100644 src/caddy_pw_command.sh create mode 100644 src/dc_update_command.sh create mode 100644 src/initialize.sh create mode 100755 yy diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..431d324 --- /dev/null +++ b/Makefile @@ -0,0 +1,20 @@ +PREFIX ?= /usr/local +BINDIR ?= $(PREFIX)/bin +DATADIR ?= $(PREFIX)/share + +BUILD_DIR := ./build +TARGET_EXEC := yy + +bashly ?= docker run --rm -it --user $(id -u):$(id -g) --volume "$(PWD):/app" -e BASHLY_TARGET_DIR=$(BUILD_DIR) -e BASHLY_ENV=production dannyben/bashly + +$(BUILD_DIR)/$(TARGET_EXEC): + @mkdir -p $(BUILD_DIR) + @$(bashly) generate + +.PHONY: install +install: $(BUILD_DIR)/$(TARGET_EXEC) + @install -vD -m755 $(BUILD_DIR)/$(TARGET_EXEC) $(DESTDIR)$(BINDIR)/$(TARGET_EXEC) + +.PHONY: clean +clean: + @rm -r $(BUILD_DIR) \ No newline at end of file diff --git a/build/yy b/build/yy new file mode 100755 index 0000000..c34dc46 --- /dev/null +++ b/build/yy @@ -0,0 +1,592 @@ +#!/usr/bin/env bash +# This script was generated by bashly 0.7.9 (https://bashly.dannyb.co) +# Modifying it manually is not recommended + +if [[ "${BASH_VERSINFO:-0}" -lt 4 ]]; then + printf "bash version 4 or higher is required\n" + exit 1 +fi + +version_command() { + echo "$version" +} + +yy_usage() { + if [[ -n $long_usage ]]; then + printf "yy - Yarmo's helper CLI\n" + echo + + else + printf "yy - Yarmo's helper CLI\n" + echo + + fi + + printf "Usage:\n" + printf " yy [command]\n" + printf " yy [command] --help | -h\n" + printf " yy --version | -v\n" + echo + + printf "Commands:\n" + echo " dc docker-compose commands" + echo " caddy caddy commands" + echo + + if [[ -n $long_usage ]]; then + printf "Options:\n" + + echo " --help, -h" + printf " Show this help\n" + echo + echo " --version, -v" + printf " Show version number\n" + echo + + fi +} + +yy_dc_usage() { + if [[ -n $long_usage ]]; then + printf "yy dc - docker-compose commands\n" + echo + + else + printf "yy dc - docker-compose commands\n" + echo + + fi + + printf "Usage:\n" + printf " yy dc [command]\n" + printf " yy dc [command] --help | -h\n" + echo + + printf "Commands:\n" + echo " update Pull and upgrade containers" + echo + + if [[ -n $long_usage ]]; then + printf "Options:\n" + + echo " --help, -h" + printf " Show this help\n" + echo + + fi +} + +yy_dc_update_usage() { + if [[ -n $long_usage ]]; then + printf "yy dc update - Pull and upgrade containers\n" + echo + + else + printf "yy dc update - Pull and upgrade containers\n" + echo + + fi + + printf "Usage:\n" + printf " yy dc update\n" + printf " yy dc update --help | -h\n" + echo + + if [[ -n $long_usage ]]; then + printf "Options:\n" + + echo " --help, -h" + printf " Show this help\n" + echo + + printf "Examples:\n" + + printf " yy dc update\n" + echo + + fi +} + +yy_caddy_usage() { + if [[ -n $long_usage ]]; then + printf "yy caddy - caddy commands\n" + echo + + else + printf "yy caddy - caddy commands\n" + echo + + fi + + printf "Usage:\n" + printf " yy caddy [command]\n" + printf " yy caddy [command] --help | -h\n" + echo + + printf "Commands:\n" + echo " gen file caddyfile" + echo " pw Generate caddy passwords" + echo + + if [[ -n $long_usage ]]; then + printf "Options:\n" + + echo " --help, -h" + printf " Show this help\n" + echo + + fi +} + +yy_caddy_gen_usage() { + if [[ -n $long_usage ]]; then + printf "yy caddy gen - file caddyfile\n" + echo + + else + printf "yy caddy gen - file caddyfile\n" + echo + + fi + + printf "Usage:\n" + printf " yy caddy gen\n" + printf " yy caddy gen --help | -h\n" + echo + + if [[ -n $long_usage ]]; then + printf "Options:\n" + + echo " --help, -h" + printf " Show this help\n" + echo + + printf "Examples:\n" + + printf " yy caddy file\n" + echo + + fi +} + +yy_caddy_pw_usage() { + if [[ -n $long_usage ]]; then + printf "yy caddy pw - Generate caddy passwords\n" + echo + + else + printf "yy caddy pw - Generate caddy passwords\n" + echo + + fi + + printf "Usage:\n" + printf " yy caddy pw\n" + printf " yy caddy pw --help | -h\n" + echo + + if [[ -n $long_usage ]]; then + printf "Options:\n" + + echo " --help, -h" + printf " Show this help\n" + echo + + printf "Examples:\n" + + printf " yy caddy pw\n" + echo + + fi +} + +normalize_input() { + local arg flags + + while [[ $# -gt 0 ]]; do + arg="$1" + if [[ $arg =~ ^(--[a-zA-Z0-9_\-]+)=(.+)$ ]]; then + input+=("${BASH_REMATCH[1]}") + input+=("${BASH_REMATCH[2]}") + elif [[ $arg =~ ^(-[a-zA-Z0-9])=(.+)$ ]]; then + input+=("${BASH_REMATCH[1]}") + input+=("${BASH_REMATCH[2]}") + elif [[ $arg =~ ^-([a-zA-Z0-9][a-zA-Z0-9]+)$ ]]; then + flags="${BASH_REMATCH[1]}" + for (( i=0 ; i < ${#flags} ; i++ )); do + input+=("-${flags:i:1}") + done + else + input+=("$arg") + fi + + shift + done +} + +inspect_args() { + readarray -t sorted_keys < <(printf '%s\n' "${!args[@]}" | sort) + if (( ${#args[@]} )); then + echo args: + for k in "${sorted_keys[@]}"; do echo "- \${args[$k]} = ${args[$k]}"; done + else + echo args: none + fi + + if (( ${#other_args[@]} )); then + echo + echo other_args: + echo "- \${other_args[*]} = ${other_args[*]}" + for i in "${!other_args[@]}"; do + echo "- \${other_args[$i]} = ${other_args[$i]}" + done + fi +} + +yy_dc_update_command() { + echo "# this file is located in 'src/dc_update_command.sh'" + echo "# code for 'yy dc update' goes here" + echo "# you can edit it freely and regenerate (it will not be overwritten)" + inspect_args +} + +yy_caddy_gen_command() { + cat ./data/caddy/config/*.txt > ./data/caddy/Caddyfile +} + +yy_caddy_pw_command() { + docker run -it --rm caddy caddy hash-password +} + +parse_requirements() { + + case "${1:-}" in + --version | -v ) + version_command + exit + ;; + + --help | -h ) + long_usage=yes + yy_usage + exit + ;; + + esac + + action=${1:-} + + case $action in + -* ) + ;; + + dc ) + action="dc" + shift + yy_dc_parse_requirements "$@" + shift $# + ;; + + caddy ) + action="caddy" + shift + yy_caddy_parse_requirements "$@" + shift $# + ;; + + * ) + yy_usage + exit 1 + ;; + + esac + + while [[ $# -gt 0 ]]; do + key="$1" + case "$key" in + + -?* ) + printf "invalid option: %s\n" "$key" + exit 1 + ;; + + * ) + + printf "invalid argument: %s\n" "$key" + exit 1 + ;; + + esac + done + +} + +yy_dc_parse_requirements() { + + case "${1:-}" in + --help | -h ) + long_usage=yes + yy_dc_usage + exit + ;; + + esac + + action=${1:-} + + case $action in + -* ) + ;; + + update ) + action="update" + shift + yy_dc_update_parse_requirements "$@" + shift $# + ;; + + * ) + yy_dc_usage + exit 1 + ;; + + esac + + while [[ $# -gt 0 ]]; do + key="$1" + case "$key" in + + -?* ) + printf "invalid option: %s\n" "$key" + exit 1 + ;; + + * ) + + printf "invalid argument: %s\n" "$key" + exit 1 + ;; + + esac + done + +} + +yy_dc_update_parse_requirements() { + + case "${1:-}" in + --help | -h ) + long_usage=yes + yy_dc_update_usage + exit + ;; + + esac + + action="dc update" + + while [[ $# -gt 0 ]]; do + key="$1" + case "$key" in + + -?* ) + printf "invalid option: %s\n" "$key" + exit 1 + ;; + + * ) + + printf "invalid argument: %s\n" "$key" + exit 1 + ;; + + esac + done + +} + +yy_caddy_parse_requirements() { + + case "${1:-}" in + --help | -h ) + long_usage=yes + yy_caddy_usage + exit + ;; + + esac + + action=${1:-} + + case $action in + -* ) + ;; + + gen ) + action="gen" + shift + yy_caddy_gen_parse_requirements "$@" + shift $# + ;; + + pw ) + action="pw" + shift + yy_caddy_pw_parse_requirements "$@" + shift $# + ;; + + * ) + yy_caddy_usage + exit 1 + ;; + + esac + + while [[ $# -gt 0 ]]; do + key="$1" + case "$key" in + + -?* ) + printf "invalid option: %s\n" "$key" + exit 1 + ;; + + * ) + + printf "invalid argument: %s\n" "$key" + exit 1 + ;; + + esac + done + +} + +yy_caddy_gen_parse_requirements() { + + case "${1:-}" in + --help | -h ) + long_usage=yes + yy_caddy_gen_usage + exit + ;; + + esac + + action="caddy gen" + + while [[ $# -gt 0 ]]; do + key="$1" + case "$key" in + + -?* ) + printf "invalid option: %s\n" "$key" + exit 1 + ;; + + * ) + + printf "invalid argument: %s\n" "$key" + exit 1 + ;; + + esac + done + +} + +yy_caddy_pw_parse_requirements() { + + case "${1:-}" in + --help | -h ) + long_usage=yes + yy_caddy_pw_usage + exit + ;; + + esac + + action="caddy pw" + + while [[ $# -gt 0 ]]; do + key="$1" + case "$key" in + + -?* ) + printf "invalid option: %s\n" "$key" + exit 1 + ;; + + * ) + + printf "invalid argument: %s\n" "$key" + exit 1 + ;; + + esac + done + +} + +initialize() { + version="0.1.0" + long_usage='' + set -e + +} + +run() { + declare -A args=() + declare -a other_args=() + declare -a input=() + normalize_input "$@" + parse_requirements "${input[@]}" + + if [[ $action == "dc" ]]; then + if [[ ${args[--help]:-} ]]; then + long_usage=yes + yy_dc_usage + else + yy_dc_command + fi + + elif [[ $action == "dc update" ]]; then + if [[ ${args[--help]:-} ]]; then + long_usage=yes + yy_dc_update_usage + else + yy_dc_update_command + fi + + elif [[ $action == "caddy" ]]; then + if [[ ${args[--help]:-} ]]; then + long_usage=yes + yy_caddy_usage + else + yy_caddy_command + fi + + elif [[ $action == "caddy gen" ]]; then + if [[ ${args[--help]:-} ]]; then + long_usage=yes + yy_caddy_gen_usage + else + yy_caddy_gen_command + fi + + elif [[ $action == "caddy pw" ]]; then + if [[ ${args[--help]:-} ]]; then + long_usage=yes + yy_caddy_pw_usage + else + yy_caddy_pw_command + fi + + elif [[ $action == "root" ]]; then + root_command + fi +} + +initialize +run "$@" diff --git a/src/bashly.yml b/src/bashly.yml new file mode 100644 index 0000000..1bda5dd --- /dev/null +++ b/src/bashly.yml @@ -0,0 +1,30 @@ +name: yy +help: Yarmo's helper CLI +version: 0.1.0 + +commands: +- name: dc + help: docker-compose commands + + commands: + - name: update + help: Pull and upgrade containers + + examples: + - yy dc update + +- name: caddy + help: caddy commands + + commands: + - name: gen + help: file caddyfile + + examples: + - yy caddy file + + - name: pw + help: Generate caddy passwords + + examples: + - yy caddy pw diff --git a/src/caddy_gen_command.sh b/src/caddy_gen_command.sh new file mode 100644 index 0000000..1473717 --- /dev/null +++ b/src/caddy_gen_command.sh @@ -0,0 +1,2 @@ +echo -e "\e[1;32mGenerating Caddyfile…\e[0m" +cat ./data/caddy/config/*.txt > ./data/caddy/Caddyfile \ No newline at end of file diff --git a/src/caddy_pw_command.sh b/src/caddy_pw_command.sh new file mode 100644 index 0000000..f5ed0c8 --- /dev/null +++ b/src/caddy_pw_command.sh @@ -0,0 +1 @@ +docker run -it --rm caddy caddy hash-password \ No newline at end of file diff --git a/src/dc_update_command.sh b/src/dc_update_command.sh new file mode 100644 index 0000000..f69b6e7 --- /dev/null +++ b/src/dc_update_command.sh @@ -0,0 +1,5 @@ +echo -e "\e[1;32mPull docker containers\e[0m" +docker-compose pull + +echo -e "\e[1;32mStart docker containers\e[0m" +docker-compose up -d \ No newline at end of file diff --git a/src/initialize.sh b/src/initialize.sh new file mode 100644 index 0000000..e69de29 diff --git a/yy b/yy new file mode 100755 index 0000000..f331ff5 --- /dev/null +++ b/yy @@ -0,0 +1,670 @@ +#!/usr/bin/env bash +# This script was generated by bashly 0.7.9 (https://bashly.dannyb.co) +# Modifying it manually is not recommended + +# :wrapper.bash3_bouncer +if [[ "${BASH_VERSINFO:-0}" -lt 4 ]]; then + printf "bash version 4 or higher is required\n" + exit 1 +fi + +# :command.master_script + +# :command.version_command +version_command() { + echo "$version" +} + +# :command.usage +yy_usage() { + if [[ -n $long_usage ]]; then + printf "yy - Yarmo's helper CLI\n" + echo + + else + printf "yy - Yarmo's helper CLI\n" + echo + + fi + + printf "Usage:\n" + printf " yy [command]\n" + printf " yy [command] --help | -h\n" + printf " yy --version | -v\n" + echo + # :command.usage_commands + printf "Commands:\n" + echo " dc docker-compose commands" + echo " caddy caddy commands" + echo + + if [[ -n $long_usage ]]; then + printf "Options:\n" + # :command.usage_fixed_flags + echo " --help, -h" + printf " Show this help\n" + echo + echo " --version, -v" + printf " Show version number\n" + echo + + fi +} + +# :command.usage +yy_dc_usage() { + if [[ -n $long_usage ]]; then + printf "yy dc - docker-compose commands\n" + echo + + else + printf "yy dc - docker-compose commands\n" + echo + + fi + + printf "Usage:\n" + printf " yy dc [command]\n" + printf " yy dc [command] --help | -h\n" + echo + # :command.usage_commands + printf "Commands:\n" + echo " update Pull and upgrade containers" + echo + + if [[ -n $long_usage ]]; then + printf "Options:\n" + # :command.usage_fixed_flags + echo " --help, -h" + printf " Show this help\n" + echo + + fi +} + +# :command.usage +yy_dc_update_usage() { + if [[ -n $long_usage ]]; then + printf "yy dc update - Pull and upgrade containers\n" + echo + + else + printf "yy dc update - Pull and upgrade containers\n" + echo + + fi + + printf "Usage:\n" + printf " yy dc update\n" + printf " yy dc update --help | -h\n" + echo + + if [[ -n $long_usage ]]; then + printf "Options:\n" + # :command.usage_fixed_flags + echo " --help, -h" + printf " Show this help\n" + echo + + # :command.usage_examples + printf "Examples:\n" + + printf " yy dc update\n" + echo + + fi +} + +# :command.usage +yy_caddy_usage() { + if [[ -n $long_usage ]]; then + printf "yy caddy - caddy commands\n" + echo + + else + printf "yy caddy - caddy commands\n" + echo + + fi + + printf "Usage:\n" + printf " yy caddy [command]\n" + printf " yy caddy [command] --help | -h\n" + echo + # :command.usage_commands + printf "Commands:\n" + echo " gen file caddyfile" + echo " pw Generate caddy passwords" + echo + + if [[ -n $long_usage ]]; then + printf "Options:\n" + # :command.usage_fixed_flags + echo " --help, -h" + printf " Show this help\n" + echo + + fi +} + +# :command.usage +yy_caddy_gen_usage() { + if [[ -n $long_usage ]]; then + printf "yy caddy gen - file caddyfile\n" + echo + + else + printf "yy caddy gen - file caddyfile\n" + echo + + fi + + printf "Usage:\n" + printf " yy caddy gen\n" + printf " yy caddy gen --help | -h\n" + echo + + if [[ -n $long_usage ]]; then + printf "Options:\n" + # :command.usage_fixed_flags + echo " --help, -h" + printf " Show this help\n" + echo + + # :command.usage_examples + printf "Examples:\n" + + printf " yy caddy file\n" + echo + + fi +} + +# :command.usage +yy_caddy_pw_usage() { + if [[ -n $long_usage ]]; then + printf "yy caddy pw - Generate caddy passwords\n" + echo + + else + printf "yy caddy pw - Generate caddy passwords\n" + echo + + fi + + printf "Usage:\n" + printf " yy caddy pw\n" + printf " yy caddy pw --help | -h\n" + echo + + if [[ -n $long_usage ]]; then + printf "Options:\n" + # :command.usage_fixed_flags + echo " --help, -h" + printf " Show this help\n" + echo + + # :command.usage_examples + printf "Examples:\n" + + printf " yy caddy pw\n" + echo + + fi +} + +# :command.normalize_input +normalize_input() { + local arg flags + + while [[ $# -gt 0 ]]; do + arg="$1" + if [[ $arg =~ ^(--[a-zA-Z0-9_\-]+)=(.+)$ ]]; then + input+=("${BASH_REMATCH[1]}") + input+=("${BASH_REMATCH[2]}") + elif [[ $arg =~ ^(-[a-zA-Z0-9])=(.+)$ ]]; then + input+=("${BASH_REMATCH[1]}") + input+=("${BASH_REMATCH[2]}") + elif [[ $arg =~ ^-([a-zA-Z0-9][a-zA-Z0-9]+)$ ]]; then + flags="${BASH_REMATCH[1]}" + for (( i=0 ; i < ${#flags} ; i++ )); do + input+=("-${flags:i:1}") + done + else + input+=("$arg") + fi + + shift + done +} +# :command.inspect_args +inspect_args() { + readarray -t sorted_keys < <(printf '%s\n' "${!args[@]}" | sort) + if (( ${#args[@]} )); then + echo args: + for k in "${sorted_keys[@]}"; do echo "- \${args[$k]} = ${args[$k]}"; done + else + echo args: none + fi + + if (( ${#other_args[@]} )); then + echo + echo other_args: + echo "- \${other_args[*]} = ${other_args[*]}" + for i in "${!other_args[@]}"; do + echo "- \${other_args[$i]} = ${other_args[$i]}" + done + fi +} + +# :command.command_functions + +# :command.function +yy_dc_update_command() { + # src/dc_update_command.sh + echo -e "\e[1;32mPull docker containers\e[0m" + docker-compose pull + + echo -e "\e[1;32mStart docker containers\e[0m" + docker-compose up -d +} + +# :command.function +yy_caddy_gen_command() { + # src/caddy_gen_command.sh + echo -e "\e[1;32mGenerating Caddyfile…\e[0m" + cat ./data/caddy/config/*.txt > ./data/caddy/Caddyfile +} + +# :command.function +yy_caddy_pw_command() { + # src/caddy_pw_command.sh + docker run -it --rm caddy caddy hash-password +} + +# :command.parse_requirements +parse_requirements() { + # :command.fixed_flags_filter + case "${1:-}" in + --version | -v ) + version_command + exit + ;; + + --help | -h ) + long_usage=yes + yy_usage + exit + ;; + + esac + # :command.environment_variables_filter + # :command.dependencies_filter + # :command.command_filter + action=${1:-} + + case $action in + -* ) + ;; + + dc ) + action="dc" + shift + yy_dc_parse_requirements "$@" + shift $# + ;; + + caddy ) + action="caddy" + shift + yy_caddy_parse_requirements "$@" + shift $# + ;; + + # :command.command_fallback + * ) + yy_usage + exit 1 + ;; + + esac + # :command.parse_requirements_while + while [[ $# -gt 0 ]]; do + key="$1" + case "$key" in + + -?* ) + printf "invalid option: %s\n" "$key" + exit 1 + ;; + + * ) + # :command.parse_requirements_case + printf "invalid argument: %s\n" "$key" + exit 1 + ;; + + esac + done + # :command.required_args_filter + # :command.required_flags_filter + # :command.catch_all_filter + # :command.default_assignments + # :command.whitelist_filter + # :command.user_filter +} + +# :command.parse_requirements +yy_dc_parse_requirements() { + # :command.fixed_flags_filter + case "${1:-}" in + --help | -h ) + long_usage=yes + yy_dc_usage + exit + ;; + + esac + # :command.environment_variables_filter + # :command.dependencies_filter + # :command.command_filter + action=${1:-} + + case $action in + -* ) + ;; + + update ) + action="update" + shift + yy_dc_update_parse_requirements "$@" + shift $# + ;; + + # :command.command_fallback + * ) + yy_dc_usage + exit 1 + ;; + + esac + # :command.parse_requirements_while + while [[ $# -gt 0 ]]; do + key="$1" + case "$key" in + + -?* ) + printf "invalid option: %s\n" "$key" + exit 1 + ;; + + * ) + # :command.parse_requirements_case + printf "invalid argument: %s\n" "$key" + exit 1 + ;; + + esac + done + # :command.required_args_filter + # :command.required_flags_filter + # :command.catch_all_filter + # :command.default_assignments + # :command.whitelist_filter + # :command.user_filter +} + +# :command.parse_requirements +yy_dc_update_parse_requirements() { + # :command.fixed_flags_filter + case "${1:-}" in + --help | -h ) + long_usage=yes + yy_dc_update_usage + exit + ;; + + esac + # :command.environment_variables_filter + # :command.dependencies_filter + # :command.command_filter + action="dc update" + # :command.parse_requirements_while + while [[ $# -gt 0 ]]; do + key="$1" + case "$key" in + + -?* ) + printf "invalid option: %s\n" "$key" + exit 1 + ;; + + * ) + # :command.parse_requirements_case + printf "invalid argument: %s\n" "$key" + exit 1 + ;; + + esac + done + # :command.required_args_filter + # :command.required_flags_filter + # :command.catch_all_filter + # :command.default_assignments + # :command.whitelist_filter + # :command.user_filter +} + +# :command.parse_requirements +yy_caddy_parse_requirements() { + # :command.fixed_flags_filter + case "${1:-}" in + --help | -h ) + long_usage=yes + yy_caddy_usage + exit + ;; + + esac + # :command.environment_variables_filter + # :command.dependencies_filter + # :command.command_filter + action=${1:-} + + case $action in + -* ) + ;; + + gen ) + action="gen" + shift + yy_caddy_gen_parse_requirements "$@" + shift $# + ;; + + pw ) + action="pw" + shift + yy_caddy_pw_parse_requirements "$@" + shift $# + ;; + + # :command.command_fallback + * ) + yy_caddy_usage + exit 1 + ;; + + esac + # :command.parse_requirements_while + while [[ $# -gt 0 ]]; do + key="$1" + case "$key" in + + -?* ) + printf "invalid option: %s\n" "$key" + exit 1 + ;; + + * ) + # :command.parse_requirements_case + printf "invalid argument: %s\n" "$key" + exit 1 + ;; + + esac + done + # :command.required_args_filter + # :command.required_flags_filter + # :command.catch_all_filter + # :command.default_assignments + # :command.whitelist_filter + # :command.user_filter +} + +# :command.parse_requirements +yy_caddy_gen_parse_requirements() { + # :command.fixed_flags_filter + case "${1:-}" in + --help | -h ) + long_usage=yes + yy_caddy_gen_usage + exit + ;; + + esac + # :command.environment_variables_filter + # :command.dependencies_filter + # :command.command_filter + action="caddy gen" + # :command.parse_requirements_while + while [[ $# -gt 0 ]]; do + key="$1" + case "$key" in + + -?* ) + printf "invalid option: %s\n" "$key" + exit 1 + ;; + + * ) + # :command.parse_requirements_case + printf "invalid argument: %s\n" "$key" + exit 1 + ;; + + esac + done + # :command.required_args_filter + # :command.required_flags_filter + # :command.catch_all_filter + # :command.default_assignments + # :command.whitelist_filter + # :command.user_filter +} + +# :command.parse_requirements +yy_caddy_pw_parse_requirements() { + # :command.fixed_flags_filter + case "${1:-}" in + --help | -h ) + long_usage=yes + yy_caddy_pw_usage + exit + ;; + + esac + # :command.environment_variables_filter + # :command.dependencies_filter + # :command.command_filter + action="caddy pw" + # :command.parse_requirements_while + while [[ $# -gt 0 ]]; do + key="$1" + case "$key" in + + -?* ) + printf "invalid option: %s\n" "$key" + exit 1 + ;; + + * ) + # :command.parse_requirements_case + printf "invalid argument: %s\n" "$key" + exit 1 + ;; + + esac + done + # :command.required_args_filter + # :command.required_flags_filter + # :command.catch_all_filter + # :command.default_assignments + # :command.whitelist_filter + # :command.user_filter +} + +# :command.initialize +initialize() { + version="0.1.0" + long_usage='' + set -e + + # src/initialize.sh +} + +# :command.run +run() { + declare -A args=() + declare -a other_args=() + declare -a input=() + normalize_input "$@" + parse_requirements "${input[@]}" + + if [[ $action == "dc" ]]; then + if [[ ${args[--help]:-} ]]; then + long_usage=yes + yy_dc_usage + else + yy_dc_command + fi + + elif [[ $action == "dc update" ]]; then + if [[ ${args[--help]:-} ]]; then + long_usage=yes + yy_dc_update_usage + else + yy_dc_update_command + fi + + elif [[ $action == "caddy" ]]; then + if [[ ${args[--help]:-} ]]; then + long_usage=yes + yy_caddy_usage + else + yy_caddy_command + fi + + elif [[ $action == "caddy gen" ]]; then + if [[ ${args[--help]:-} ]]; then + long_usage=yes + yy_caddy_gen_usage + else + yy_caddy_gen_command + fi + + elif [[ $action == "caddy pw" ]]; then + if [[ ${args[--help]:-} ]]; then + long_usage=yes + yy_caddy_pw_usage + else + yy_caddy_pw_command + fi + + elif [[ $action == "root" ]]; then + root_command + fi +} + +initialize +run "$@" -- cgit v1.2.3