summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYarmo Mackenbach <yarmo@yarmo.eu>2022-04-14 14:07:21 +0200
committerYarmo Mackenbach <yarmo@yarmo.eu>2022-04-14 14:07:21 +0200
commitf84d5391efc2ff5326c8d4807cc8ea72d1e0641c (patch)
treed482900a3ebd19825e45d7ec2d203bdf84fff95d
Initial commitHEADmain
-rw-r--r--Makefile20
-rwxr-xr-xbuild/yy592
-rw-r--r--src/bashly.yml30
-rw-r--r--src/caddy_gen_command.sh2
-rw-r--r--src/caddy_pw_command.sh1
-rw-r--r--src/dc_update_command.sh5
-rw-r--r--src/initialize.sh0
-rwxr-xr-xyy670
8 files changed, 1320 insertions, 0 deletions
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
--- /dev/null
+++ b/src/initialize.sh
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 "$@"