diff options
Diffstat (limited to 'build/yy')
-rwxr-xr-x | build/yy | 592 |
1 files changed, 592 insertions, 0 deletions
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 "$@" |