#!/usr/bin/env bash # This script was generated by bashly 1.0.8 (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" >&2 exit 1 fi # :command.master_script # :command.version_command version_command() { echo "$version" } # :command.usage dev_tools_usage() { if [[ -n $long_usage ]]; then printf "dev-tools - CLI for various dev-tools operation on the stack\n" echo else printf "dev-tools - CLI for various dev-tools operation on the stack\n" echo fi printf "%s\n" "Usage:" printf " dev-tools COMMAND\n" printf " dev-tools [COMMAND] --help | -h\n" printf " dev-tools --version | -v\n" echo # :command.usage_commands printf "%s\n" "dev-env Commands:" printf " %s run bash console for vcsserver\n" "vcs " printf " %s run bash console for rhodecode-ee\n" "ee " printf " %s run bash console for rhodecode-ce\n" "ce " printf " %s run bash console for rhodecode-celery\n" "celery " printf " %s run celery instance on top of mounted source code, e.g ./dev-tools celeryd&\n" "celeryd " printf " %s run bash console for rhodecode-ssh\n" "ssh " printf " %s run sshd instance for rhodecode-ssh\n" "sshd " printf " %s run bash console for rhodecode-ssh\n" "svn " printf " %s run sshd instance for rhodecode-ssh\n" "svnd " printf " %s run bash console for rhodecode-tools-ce\n" "tools " printf " %s create dev env required to run vcsserver and rhodecode\n" "dev-env " echo printf "%s\n" "Cleanup Commands:" printf " %s clears docker images\n" "prune " printf " %s clears docker images and system cache, full cleanup. Be cautious !\n" "prune-all " echo printf "%s\n" "CLI generation Commands:" printf " %s pull latest image of bashly\n" "cli-generate-pull " printf " %s print out help about bashly\n" "cli-generate-help " printf " %s set the version for rcstack\n" "stack-cli-version " printf " %s run a ./rcstack generation script\n" "cli-generate-rc " printf " %s run a ./dev-tools generation script\n" "cli-generate-dev " echo printf "%s\n" "Build Commands:" printf " %s Fetch Artifacts to run installer based build\n" "get-build-artifacts" printf " %s Build RhodeCode image from installer, ./dev-tools get-build-artifacts initially\n" "build-installer " printf " %s Fetch RhodeCode sources, store in .source dir to run a source-based builds\n" "get-build-source " printf " %s Build RhodeCode image from source, requires ./dev-tools get-build-source initially\n" "build-source " echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo printf " %s\n" "--version, -v" printf " Show version number\n" echo # :command.footer printf "RhodeCode Inc 2024\n\n" echo fi } # :command.usage dev_tools_vcs_usage() { if [[ -n $long_usage ]]; then printf "dev-tools vcs - run bash console for vcsserver\n" echo else printf "dev-tools vcs - run bash console for vcsserver\n" echo fi printf "Alias: v\n" echo printf "%s\n" "Usage:" printf " dev-tools vcs\n" printf " dev-tools vcs --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo fi } # :command.usage dev_tools_ee_usage() { if [[ -n $long_usage ]]; then printf "dev-tools ee - run bash console for rhodecode-ee\n" echo else printf "dev-tools ee - run bash console for rhodecode-ee\n" echo fi printf "Alias: e\n" echo printf "%s\n" "Usage:" printf " dev-tools ee\n" printf " dev-tools ee --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo fi } # :command.usage dev_tools_ce_usage() { if [[ -n $long_usage ]]; then printf "dev-tools ce - run bash console for rhodecode-ce\n" echo else printf "dev-tools ce - run bash console for rhodecode-ce\n" echo fi printf "Alias: c\n" echo printf "%s\n" "Usage:" printf " dev-tools ce\n" printf " dev-tools ce --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo fi } # :command.usage dev_tools_celery_usage() { if [[ -n $long_usage ]]; then printf "dev-tools celery - run bash console for rhodecode-celery\n" echo else printf "dev-tools celery - run bash console for rhodecode-celery\n" echo fi printf "%s\n" "Usage:" printf " dev-tools celery [OPTIONS]\n" printf " dev-tools celery --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_flags # :flag.usage printf " %s\n" "--workdir WORKDIR" printf " workdir to run the pip install -e on top of can be ce or ee only\n" printf " Default: /home/rhodecode/rhodecode-enterprise-ce\n" echo # :flag.usage printf " %s\n" "--cmd CMD" printf " cmd script to run, this is on host machine, relative to $WORKSPACE_HOME\n" printf " Default: .dev-env/cmd-celery.sh\n" echo # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo fi } # :command.usage dev_tools_celeryd_usage() { if [[ -n $long_usage ]]; then printf "dev-tools celeryd - run celery instance on top of mounted source code, e.g ./dev-tools celeryd&\n" echo else printf "dev-tools celeryd - run celery instance on top of mounted source code, e.g ./dev-tools celeryd&\n" echo fi printf "%s\n" "Usage:" printf " dev-tools celeryd [OPTIONS]\n" printf " dev-tools celeryd --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_flags # :flag.usage printf " %s\n" "--workdir WORKDIR" printf " workdir to run the pip install -e on top of can be ce or ee only\n" printf " Default: /home/rhodecode/rhodecode-enterprise-ce\n" echo # :flag.usage printf " %s\n" "--cmd CMD" printf " cmd script to run, this is on host machine, relative to $WORKSPACE_HOME\n" printf " Default: .dev-env/cmd-celeryd.sh\n" echo # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo fi } # :command.usage dev_tools_ssh_usage() { if [[ -n $long_usage ]]; then printf "dev-tools ssh - run bash console for rhodecode-ssh\n" echo else printf "dev-tools ssh - run bash console for rhodecode-ssh\n" echo fi printf "%s\n" "Usage:" printf " dev-tools ssh [OPTIONS]\n" printf " dev-tools ssh --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_flags # :flag.usage printf " %s\n" "--workdir WORKDIR" printf " workdir to run the pip install -e on top of can be ce or ee only\n" printf " Default: /home/rhodecode/rhodecode-enterprise-ce\n" echo # :flag.usage printf " %s\n" "--cmd CMD" printf " cmd script to run, this is on host machine, relative to $WORKSPACE_HOME\n" printf " Default: .dev-env/cmd-ssh.sh\n" echo # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo fi } # :command.usage dev_tools_sshd_usage() { if [[ -n $long_usage ]]; then printf "dev-tools sshd - run sshd instance for rhodecode-ssh\n" echo else printf "dev-tools sshd - run sshd instance for rhodecode-ssh\n" echo fi printf "%s\n" "Usage:" printf " dev-tools sshd [OPTIONS]\n" printf " dev-tools sshd --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_flags # :flag.usage printf " %s\n" "--workdir WORKDIR" printf " workdir to run the pip install -e on top of can be ce or ee only\n" printf " Default: /home/rhodecode/rhodecode-enterprise-ce\n" echo # :flag.usage printf " %s\n" "--cmd CMD" printf " cmd script to run, this is on host machine, relative to $WORKSPACE_HOME\n" printf " Default: .dev-env/cmd-sshd.sh\n" echo # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo fi } # :command.usage dev_tools_svn_usage() { if [[ -n $long_usage ]]; then printf "dev-tools svn - run bash console for rhodecode-ssh\n" echo else printf "dev-tools svn - run bash console for rhodecode-ssh\n" echo fi printf "%s\n" "Usage:" printf " dev-tools svn [OPTIONS]\n" printf " dev-tools svn --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_flags # :flag.usage printf " %s\n" "--workdir WORKDIR" printf " workdir to run the pip install -e on top of can be ce or ee only\n" printf " Default: /home/rhodecode/rhodecode-enterprise-ce\n" echo # :flag.usage printf " %s\n" "--cmd CMD" printf " cmd script to run, this is on host machine, relative to $WORKSPACE_HOME\n" printf " Default: .dev-env/cmd-svn.sh\n" echo # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo fi } # :command.usage dev_tools_svnd_usage() { if [[ -n $long_usage ]]; then printf "dev-tools svnd - run sshd instance for rhodecode-ssh\n" echo else printf "dev-tools svnd - run sshd instance for rhodecode-ssh\n" echo fi printf "%s\n" "Usage:" printf " dev-tools svnd [OPTIONS]\n" printf " dev-tools svnd --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_flags # :flag.usage printf " %s\n" "--workdir WORKDIR" printf " workdir to run the pip install -e on top of can be ce or ee only\n" printf " Default: /home/rhodecode/rhodecode-enterprise-ce\n" echo # :flag.usage printf " %s\n" "--cmd CMD" printf " cmd script to run, this is on host machine, relative to $WORKSPACE_HOME\n" printf " Default: .dev-env/cmd-svnd.sh\n" echo # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo fi } # :command.usage dev_tools_tools_usage() { if [[ -n $long_usage ]]; then printf "dev-tools tools - run bash console for rhodecode-tools-ce\n" echo else printf "dev-tools tools - run bash console for rhodecode-tools-ce\n" echo fi printf "Alias: t\n" echo printf "%s\n" "Usage:" printf " dev-tools tools\n" printf " dev-tools tools --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo fi } # :command.usage dev_tools_dev_env_usage() { if [[ -n $long_usage ]]; then printf "dev-tools dev-env - create dev env required to run vcsserver and rhodecode\n" echo else printf "dev-tools dev-env - create dev env required to run vcsserver and rhodecode\n" echo fi printf "%s\n" "Usage:" printf " dev-tools dev-env\n" printf " dev-tools dev-env --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo fi } # :command.usage dev_tools_prune_usage() { if [[ -n $long_usage ]]; then printf "dev-tools prune - clears docker images\n" echo else printf "dev-tools prune - clears docker images\n" echo fi printf "%s\n" "Usage:" printf " dev-tools prune\n" printf " dev-tools prune --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo fi } # :command.usage dev_tools_prune_all_usage() { if [[ -n $long_usage ]]; then printf "dev-tools prune-all - clears docker images and system cache, full cleanup. Be cautious !\n" echo else printf "dev-tools prune-all - clears docker images and system cache, full cleanup. Be cautious !\n" echo fi printf "%s\n" "Usage:" printf " dev-tools prune-all\n" printf " dev-tools prune-all --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo fi } # :command.usage dev_tools_cli_generate_pull_usage() { if [[ -n $long_usage ]]; then printf "dev-tools cli-generate-pull - pull latest image of bashly\n" echo else printf "dev-tools cli-generate-pull - pull latest image of bashly\n" echo fi printf "%s\n" "Usage:" printf " dev-tools cli-generate-pull\n" printf " dev-tools cli-generate-pull --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo fi } # :command.usage dev_tools_cli_generate_help_usage() { if [[ -n $long_usage ]]; then printf "dev-tools cli-generate-help - print out help about bashly\n" echo else printf "dev-tools cli-generate-help - print out help about bashly\n" echo fi printf "%s\n" "Usage:" printf " dev-tools cli-generate-help\n" printf " dev-tools cli-generate-help --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo fi } # :command.usage dev_tools_stack_cli_version_usage() { if [[ -n $long_usage ]]; then printf "dev-tools stack-cli-version - set the version for rcstack\n" echo else printf "dev-tools stack-cli-version - set the version for rcstack\n" echo fi printf "%s\n" "Usage:" printf " dev-tools stack-cli-version VERSION\n" printf " dev-tools stack-cli-version --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo # :command.usage_args printf "%s\n" "Arguments:" # :argument.usage printf " %s\n" "VERSION" printf " Version to set e.g '5.0.0'\n" echo fi } # :command.usage dev_tools_cli_generate_rc_usage() { if [[ -n $long_usage ]]; then printf "dev-tools cli-generate-rc - run a ./rcstack generation script\n" echo else printf "dev-tools cli-generate-rc - run a ./rcstack generation script\n" echo fi printf "%s\n" "Usage:" printf " dev-tools cli-generate-rc [OPTIONS]\n" printf " dev-tools cli-generate-rc --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_flags # :flag.usage printf " %s\n" "--one-time, -o" printf " run the command a single time without watch\n" echo # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo fi } # :command.usage dev_tools_cli_generate_dev_usage() { if [[ -n $long_usage ]]; then printf "dev-tools cli-generate-dev - run a ./dev-tools generation script\n" echo else printf "dev-tools cli-generate-dev - run a ./dev-tools generation script\n" echo fi printf "%s\n" "Usage:" printf " dev-tools cli-generate-dev [OPTIONS]\n" printf " dev-tools cli-generate-dev --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_flags # :flag.usage printf " %s\n" "--one-time, -o" printf " run the command a single time without watch\n" echo # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo fi } # :command.usage dev_tools_get_build_artifacts_usage() { if [[ -n $long_usage ]]; then printf "dev-tools get-build-artifacts - Fetch Artifacts to run installer based build\n" echo else printf "dev-tools get-build-artifacts - Fetch Artifacts to run installer based build\n" echo fi printf "%s\n" "Usage:" printf " dev-tools get-build-artifacts [OPTIONS]\n" printf " dev-tools get-build-artifacts --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_flags # :flag.usage printf " %s\n" "--auth AUTH" printf " Specify custom auth for curl e.g -u admin:secret\n" printf " Default: \n" echo # :flag.usage printf " %s\n" "--installer-url INSTALLER_URL" printf " Installer Download URL\n" printf " Default: https://dls.rhodecode.com/dls/N2E2ZTY1NzA3NjYxNDA2NTc1NjI3MTcyNzA2MjcxNzIyZTcwNjI3YQ==/rhodecode-control/latest-linux-ee\n" echo # :flag.usage printf " %s\n" "--manifest-url MANIFEST_URL" printf " Manifest file url\n" printf " Default: https://dls.rhodecode.com/linux/MANIFEST\n" echo # :flag.usage printf " %s\n" "--version-name VERSION_NAME" printf " Specify custom build ver e.g 4.27.0\n" printf " Default: $RC_CLI_VERSION_NAME\n" echo # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo fi } # :command.usage dev_tools_build_installer_usage() { if [[ -n $long_usage ]]; then printf "dev-tools build-installer - Build RhodeCode image from installer, ./dev-tools get-build-artifacts initially\n" echo else printf "dev-tools build-installer - Build RhodeCode image from installer, ./dev-tools get-build-artifacts initially\n" echo fi printf "%s\n" "Usage:" printf " dev-tools build-installer [OPTIONS]\n" printf " dev-tools build-installer --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_flags # :flag.usage printf " %s\n" "--version-name VERSION_NAME" printf " Specify custom build ver e.g 4.27.0\n" printf " Default: $RC_CLI_VERSION_NAME\n" echo # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo fi } # :command.usage dev_tools_get_build_source_usage() { if [[ -n $long_usage ]]; then printf "dev-tools get-build-source - Fetch RhodeCode sources, store in .source dir to run a source-based builds\n" echo else printf "dev-tools get-build-source - Fetch RhodeCode sources, store in .source dir to run a source-based builds\n" echo fi printf "%s\n" "Usage:" printf " dev-tools get-build-source [OPTIONS]\n" printf " dev-tools get-build-source --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_flags # :flag.usage printf " %s\n" "--revision REVISION" printf " revision to download\n" printf " Default: default\n" echo # :flag.usage printf " %s\n" "--auth-token AUTH_TOKEN" printf " Specify AUTH TOKEN to obtain sources\n" echo # :flag.usage printf " %s\n" "--server-url SERVER_URL" printf " Specify RhodeCode server location where projects should be downloaded\n" printf " Default: https://code.rhodecode.com\n" echo # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo # :command.usage_examples printf "%s\n" "Examples:" printf " ./dev-tools get-sources $RC_CLI_VERSION_NAME\n" printf " ./dev-tools get-sources default --auth-token xyxyxyx --server-url\n https://secret.repo/\n" echo fi } # :command.usage dev_tools_build_source_usage() { if [[ -n $long_usage ]]; then printf "dev-tools build-source - Build RhodeCode image from source, requires ./dev-tools get-build-source initially\n" echo else printf "dev-tools build-source - Build RhodeCode image from source, requires ./dev-tools get-build-source initially\n" echo fi printf "%s\n" "Usage:" printf " dev-tools build-source [OPTIONS]\n" printf " dev-tools build-source --help | -h\n" echo # :command.long_usage if [[ -n $long_usage ]]; then printf "%s\n" "Options:" # :command.usage_flags # :flag.usage printf " %s\n" "--version-name VERSION_NAME" printf " Specify custom build ver e.g 4.27.0\n" printf " Default: $RC_CLI_VERSION_NAME\n" echo # :flag.usage printf " %s\n" "--source-build-yaml BUILD_SOURCE_YAML" printf " yaml file to build source against\n" printf " Default: build_yaml/docker-compose-apps.5.yaml\n" echo # :flag.usage printf " %s\n" "--tag TAG (repeatable)" printf " tag build image\n" echo # :command.usage_fixed_flags printf " %s\n" "--help, -h" printf " Show this help\n" echo # :command.usage_examples printf "%s\n" "Examples:" printf " ./dev-tools build-source --source-build-yaml\n build_yaml/docker-compose-apps.5.yaml --version-name 5.0.0.beta1 --tag beta\n" printf " ./dev-tools build-source --source-build-yaml\n build_yaml/docker-compose-apps.4.yaml --version-name 4.28.0 --tag stable\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() { if ((${#args[@]})); then readarray -t sorted_keys < <(printf '%s\n' "${!args[@]}" | sort) 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 if ((${#deps[@]})); then readarray -t sorted_keys < <(printf '%s\n' "${!deps[@]}" | sort) echo echo deps: for k in "${sorted_keys[@]}"; do echo "- \${deps[$k]} = ${deps[$k]}"; done fi } # :command.command_functions # :command.function dev_tools_vcs_command() { # src/vcs_command.sh container_name=dev-vcsserver dev_env_file="/home/rhodecode/rhodecode-vcsserver/.dev/dev-env.sh" env_file=".custom/.dev.env" docker_id=$(docker ps -q --filter "name=$container_name") if [[ $docker_id ]]; then echo $container_name FOUND, Killing old one ! docker kill -s 9 $docker_id sleep 5 docker rm -fv $container_name echo "done..." else echo $container_name not found # # bootstrap dev-env.sh # if [[ ! -f $dev_env_file ]]; then # echo "bootstrap of new dev-env file under $dev_env_file" # fi fi if [[ -v WORKSPACE_HOME ]]; then DEFAULT_WORKSPACE_HOME=$WORKSPACE_HOME else echo "WORKSPACE_HOME env var is not set" exit 1 fi echo "Using default WORKSPACE_HOME path: $DEFAULT_WORKSPACE_HOME" eval " WORKSPACE_HOME=$DEFAULT_WORKSPACE_HOME \ ./rcstack stack --env-file-path $env_file rhodecode -f docker-compose-apps.dev.yaml \ run -e ENV_FILE= -e RC_ENV_FILE= -e RC_APP_TYPE=rhodecode_sh \ --publish 10010:10010 --rm --use-aliases \ --workdir=\"/home/rhodecode/rhodecode-vcsserver\" \ --interactive --tty \ --name=\"$container_name\" vcsserver bash $dev_env_file" } # :command.function dev_tools_ee_command() { # src/ee_command.sh container_name=dev-enterprise-ee dev_env_file="/home/rhodecode/rhodecode-enterprise-ee/.dev/dev-env.sh" env_file=".custom/.dev.env" docker_id=$(docker ps -q --filter "name=$container_name") if [[ $docker_id ]]; then echo $container_name FOUND, Killing old one ! docker kill -s 9 $docker_id sleep 5 docker rm -fv $container_name echo "done..." else echo $container_name not found # # bootstrap dev-env.sh # if [[ ! -f $dev_env_file ]]; then # echo "bootstrap of new dev-env file under $dev_env_file" # fi fi if [[ -v WORKSPACE_HOME ]]; then DEFAULT_WORKSPACE_HOME=$WORKSPACE_HOME else echo "WORKSPACE_HOME env var is not set" exit 1 fi echo "Using default WORKSPACE_HOME path: $DEFAULT_WORKSPACE_HOME" eval " WORKSPACE_HOME=$DEFAULT_WORKSPACE_HOME \ ./rcstack stack --env-file-path $env_file rhodecode -f docker-compose-apps.dev.yaml \ run -e ENV_FILE= -e RC_ENV_FILE= -e RC_APP_TYPE=rhodecode_sh --rm --use-aliases \ --publish 10020:10020 --rm --use-aliases \ --workdir=\"/home/rhodecode/rhodecode-enterprise-ee\" \ --interactive --tty \ --name=\"$container_name\" rhodecode bash $dev_env_file" } # :command.function dev_tools_ce_command() { # src/ce_command.sh container_name=dev-enterprise-ce dev_env_file="/home/rhodecode/rhodecode-enterprise-ce/.dev/dev-env.sh" env_file=".custom/.dev.env" docker_id=$(docker ps -q --filter "name=$container_name") if [[ $docker_id ]]; then echo $container_name FOUND, Killing old one ! docker kill -s 9 $docker_id sleep 5 docker rm -fv $container_name echo "done..." else echo $container_name not found # # bootstrap dev-env.sh # if [[ ! -f $dev_env_file ]]; then # echo "bootstrap of new dev-env file under $dev_env_file" # fi fi if [[ -v WORKSPACE_HOME ]]; then DEFAULT_WORKSPACE_HOME=$WORKSPACE_HOME else echo "WORKSPACE_HOME env var is not set" exit 1 fi echo "Using default WORKSPACE_HOME path: $DEFAULT_WORKSPACE_HOME" eval " WORKSPACE_HOME=$DEFAULT_WORKSPACE_HOME \ ./rcstack stack --env-file-path $env_file rhodecode -f docker-compose-apps.dev.yaml \ run -e ENV_FILE= -e RC_ENV_FILE= -e RC_APP_TYPE=rhodecode_sh --rm --use-aliases \ --publish 10020:10020 --rm --use-aliases \ --workdir=\"/home/rhodecode/rhodecode-enterprise-ce\" \ --interactive --tty \ --name=\"$container_name\" rhodecode bash $dev_env_file" } # :command.function dev_tools_celery_command() { # src/celery_command.sh if [[ -v WORKSPACE_HOME ]]; then DEFAULT_WORKSPACE_HOME=$WORKSPACE_HOME echo "Using default WORKSPACE_HOME path: $DEFAULT_WORKSPACE_HOME" else echo "WORKSPACE_HOME env var is not set" exit 1 fi code_workdir=${args[--workdir]} cmd_script=${args[--cmd]} exec_script=$WORKSPACE_HOME/$cmd_script container_name=dev-celery env_file=".custom/.dev.env" echo "Using exec script: $exec_script" RC_DEV_CMD_HELP="celery --no-color --app=rhodecode.lib.celerylib.loader worker --autoscale=4,2 --max-tasks-per-child=100 --task-events --loglevel=DEBUG --ini=.dev/dev.ini" if [[ ! -f $exec_script ]]; then echo "Generating new $exec_script file..." mkdir -p $(dirname $exec_script) cat <<< " # Generated dev-env script for celery echo \"Run celery dev using the following command:\" echo \"++++++++++++++++++++++++++++++++++++++++++++++++++\" echo \"$RC_DEV_CMD_HELP\" echo \"++++++++++++++++++++++++++++++++++++++++++++++++++\" make sh " > $exec_script chmod +x $exec_script fi docker_exec_script="/var/opt/rhodecode_repo_store/$cmd_script" docker_id=$(docker ps -q --filter "name=$container_name" --filter name="rc_cluster_apps-celery") if [[ $docker_id ]]; then echo $container_name FOUND, Killing old one ! docker kill -s 9 $docker_id sleep 5 docker rm -fv $container_name echo "done..." else echo $container_name not found fi eval " WORKSPACE_HOME=$DEFAULT_WORKSPACE_HOME RC_DEV_CMD_HELP=\"$RC_DEV_CMD_HELP\" \ ./rcstack stack --env-file-path $env_file rhodecode -f docker-compose-apps.dev.yaml \ run -e RC_DEV_CMD_HELP=\"'$RC_DEV_CMD_HELP'\" -e ENV_FILE= -e RC_ENV_FILE= -e RC_APP_TYPE=rhodecode_$container_name --rm --use-aliases \ --workdir=\"$code_workdir\" \ --name=\"$container_name\" \ --interactive --tty \ rhodecode bash $docker_exec_script" } # :command.function dev_tools_celeryd_command() { # src/celeryd_command.sh if [[ -v WORKSPACE_HOME ]]; then DEFAULT_WORKSPACE_HOME=$WORKSPACE_HOME echo "Using default WORKSPACE_HOME path: $DEFAULT_WORKSPACE_HOME" else echo "WORKSPACE_HOME env var is not set" exit 1 fi code_workdir=${args[--workdir]} cmd_script=${args[--cmd]} exec_script=$WORKSPACE_HOME/$cmd_script container_name=dev-celeryd env_file=".custom/.dev.env" echo "Using exec script: $exec_script" RC_DEV_CMD_HELP="" if [[ ! -f $exec_script ]]; then echo "Generating new $exec_script file..." mkdir -p $(dirname $exec_script) cat <<< " # Generated dev-env script for celeryd echo \"Run celery dev using the following command:\" make dev-env && celery --no-color --app=rhodecode.lib.celerylib.loader worker --autoscale=4,2 --max-tasks-per-child=100 --task-events --loglevel=DEBUG --ini=.dev/dev.ini " > $exec_script chmod +x $exec_script fi docker_exec_script="/var/opt/rhodecode_repo_store/$cmd_script" docker_id=$(docker ps -q --filter "name=$container_name" --filter name="rc_cluster_apps-celery") if [[ $docker_id ]]; then echo $container_name FOUND, Killing old one ! docker kill -s 9 $docker_id sleep 5 docker rm -fv $container_name echo "done..." else echo $container_name not found fi eval " WORKSPACE_HOME=$DEFAULT_WORKSPACE_HOME RC_DEV_CMD_HELP=\"$RC_DEV_CMD_HELP\" \ ./rcstack stack --env-file-path $env_file rhodecode -f docker-compose-apps.dev.yaml \ run -e RC_DEV_CMD_HELP=\"'$RC_DEV_CMD_HELP'\" -e ENV_FILE= -e RC_ENV_FILE= -e RC_APP_TYPE=rhodecode_$container_name --rm --use-aliases \ --workdir=\"$code_workdir\" \ --name=\"$container_name\" \ --detach \ rhodecode $docker_exec_script" } # :command.function dev_tools_ssh_command() { # src/ssh_command.sh if [[ -v WORKSPACE_HOME ]]; then DEFAULT_WORKSPACE_HOME=$WORKSPACE_HOME echo "Using default WORKSPACE_HOME path: $DEFAULT_WORKSPACE_HOME" else echo "WORKSPACE_HOME env var is not set" exit 1 fi code_workdir=${args[--workdir]} cmd_script=${args[--cmd]} exec_script=$WORKSPACE_HOME/$cmd_script container_name=dev-ssh env_file=".custom/.dev.env" echo "Using exec script: $exec_script" RC_DEV_CMD_HELP="mkdir -p /run/sshd && /usr/sbin/sshd -f /etc/rhodecode/sshd_config -D -e" if [[ ! -f $exec_script ]]; then echo "Generating new $exec_script file..." mkdir -p $(dirname $exec_script) cat <<< " # Generated dev-env script for ssh echo \"Run ssh dev using the following command:\" echo \"++++++++++++++++++++++++++++++++++++++++++++++++++\" echo \"$RC_DEV_CMD_HELP\" echo \"++++++++++++++++++++++++++++++++++++++++++++++++++\" make sh " > $exec_script chmod +x $exec_script fi docker_exec_script="/var/opt/rhodecode_repo_store/$cmd_script" docker_id=$(docker ps -q --filter "name=$container_name" --filter name="rc_cluster_apps-sshd") if [[ $docker_id ]]; then echo $container_name FOUND, Killing old one ! docker kill -s 9 $docker_id sleep 5 docker rm -fv $container_name echo "done..." else echo $container_name not found fi RC_SSH_PORT=9022 eval " WORKSPACE_HOME=$DEFAULT_WORKSPACE_HOME RC_DEV_CMD_HELP=\"$RC_DEV_CMD_HELP\" \ ./rcstack stack --env-file-path $env_file rhodecode -f docker-compose-apps.dev.yaml \ run -e RC_DEV_CMD_HELP=\"'$RC_DEV_CMD_HELP'\" -e ENV_FILE= -e RC_ENV_FILE= -e RC_APP_TYPE=rhodecode_$container_name --rm --use-aliases \ --workdir=\"$code_workdir\" \ --name=\"$container_name\" \ --interactive --tty \ --publish $RC_SSH_PORT:$RC_SSH_PORT \ sshd bash $docker_exec_script" } # :command.function dev_tools_sshd_command() { # src/sshd_command.sh if [[ -v WORKSPACE_HOME ]]; then DEFAULT_WORKSPACE_HOME=$WORKSPACE_HOME echo "Using default WORKSPACE_HOME path: $DEFAULT_WORKSPACE_HOME" else echo "WORKSPACE_HOME env var is not set" exit 1 fi code_workdir=${args[--workdir]} cmd_script=${args[--cmd]} exec_script=$WORKSPACE_HOME/$cmd_script container_name=dev-sshd env_file=".custom/.dev.env" echo "Using exec script: $exec_script" RC_DEV_CMD_HELP="" if [[ ! -f $exec_script ]]; then echo "Generating new $exec_script file..." mkdir -p $(dirname $exec_script) cat <<< " # Generated dev-env script for ssh echo \"Run ssh dev using the following command:\" make dev-env && mkdir -p /run/sshd && /usr/sbin/sshd -f /etc/rhodecode/sshd_config -D -e " > $exec_script chmod +x $exec_script fi docker_exec_script="/var/opt/rhodecode_repo_store/$cmd_script" docker_id=$(docker ps -q --filter "name=$container_name" --filter name="rc_cluster_apps-sshd") if [[ $docker_id ]]; then echo $container_name FOUND, Killing old one ! docker kill -s 9 $docker_id sleep 5 docker rm -fv $container_name echo "done..." else echo $container_name not found fi RC_SSH_PORT=9022 eval " WORKSPACE_HOME=$DEFAULT_WORKSPACE_HOME RC_DEV_CMD_HELP=\"$RC_DEV_CMD_HELP\" \ ./rcstack stack --env-file-path $env_file rhodecode -f docker-compose-apps.dev.yaml \ run -e RC_DEV_CMD_HELP=\"'$RC_DEV_CMD_HELP'\" -e ENV_FILE= -e RC_ENV_FILE= -e RC_APP_TYPE=rhodecode_$container_name --rm --use-aliases \ --workdir=\"$code_workdir\" \ --name=\"$container_name\" \ --detach \ --publish $RC_SSH_PORT:$RC_SSH_PORT \ sshd $docker_exec_script" } # :command.function dev_tools_svn_command() { # src/svn_command.sh if [[ -v WORKSPACE_HOME ]]; then DEFAULT_WORKSPACE_HOME=$WORKSPACE_HOME echo "Using default WORKSPACE_HOME path: $DEFAULT_WORKSPACE_HOME" else echo "WORKSPACE_HOME env var is not set" exit 1 fi code_workdir=${args[--workdir]} cmd_script=${args[--cmd]} exec_script=$WORKSPACE_HOME/$cmd_script container_name=dev-svn env_file=".custom/.dev.env" echo "Using exec script: $exec_script" RC_DEV_CMD_HELP="apachectl -D FOREGROUND" if [[ ! -f $exec_script ]]; then echo "Generating new $exec_script file..." mkdir -p $(dirname $exec_script) cat <<< " # Generated dev-env script for svn echo \"Run svn dev using the following command:\" echo \"++++++++++++++++++++++++++++++++++++++++++++++++++\" echo \"$RC_DEV_CMD_HELP\" echo \"++++++++++++++++++++++++++++++++++++++++++++++++++\" make sh " > $exec_script chmod +x $exec_script fi docker_exec_script="/var/opt/rhodecode_repo_store/$cmd_script" docker_id=$(docker ps -q --filter "name=$container_name" --filter name="rc_cluster_apps-svn") if [[ $docker_id ]]; then echo $container_name FOUND, Killing old one ! docker kill -s 9 $docker_id sleep 5 docker rm -fv $container_name echo "done..." else echo $container_name not found fi eval " WORKSPACE_HOME=$DEFAULT_WORKSPACE_HOME RC_DEV_CMD_HELP=\"$RC_DEV_CMD_HELP\" \ ./rcstack stack --env-file-path $env_file rhodecode -f docker-compose-apps.dev.yaml \ run -e RC_DEV_CMD_HELP=\"'$RC_DEV_CMD_HELP'\" -e ENV_FILE= -e RC_ENV_FILE= -e RC_APP_TYPE=rhodecode_$container_name --rm --use-aliases \ --workdir=\"$code_workdir\" \ --name=\"$container_name\" \ --interactive --tty \ svn bash $docker_exec_script" } # :command.function dev_tools_svnd_command() { # src/svnd_command.sh echo "# this file is located in 'src/svnd_command.sh'" echo "# code for 'dev-tools svnd' goes here" echo "# you can edit it freely and regenerate (it will not be overwritten)" inspect_args } # :command.function dev_tools_tools_command() { # src/tools_command.sh container_name=dev-tools docker ps -q --filter "name=$container_name" | grep -q . && echo $container_name found || echo $container_name not found docker ps -q --filter "name=$container_name" | grep -q . && docker stop -t 120 $container_name && docker rm -fv $container_name if [[ -v WORKSPACE_HOME ]]; then DEFAULT_WORKSPACE_HOME=$WORKSPACE_HOME else echo "WORKSPACE_HOME env var is not set" exit 1 fi echo "Using default WORKSPACE_HOME path: $DEFAULT_WORKSPACE_HOME" eval " WORKSPACE_HOME=$DEFAULT_WORKSPACE_HOME \ ./rcstack stack --env-file-path .custom/.dev.env rhodecode -f docker-compose-apps.dev.yaml \ run -e ENV_FILE= -e RC_ENV_FILE= -e RC_APP_TYPE=rhodecode_tools_bash \ --rm --use-aliases \ --workdir=\"/home/rhodecode/rhodecode-tools-ce\" \ --interactive --tty \ --name=\"$container_name\" rhodecode bash /home/rhodecode/rhodecode-tools-ce/.dev/dev-env.sh" } # :command.function dev_tools_dev_env_command() { # src/dev_env_command.sh eval " \ ./rcstack stack metrics up --detach statsd-exporter && \ ./rcstack stack services up --detach && \ ./rcstack stack services up --detach httpbin && \ ./rcstack stack services up --detach ldap-server && \ ./rcstack stack rhodecode up --detach svn && \ ./rcstack stack rhodecode up --detach celery celery-beat && \ ./rcstack stack rhodecode up --detach sshd && \ ./rcstack status" } # :command.function dev_tools_prune_command() { # src/prune_command.sh docker container prune -f docker image prune -f docker builder prune -f docker system df } # :command.function dev_tools_prune_all_command() { # src/prune_all_command.sh docker container prune -f docker image prune -f docker builder prune -f docker system prune -f docker system df } # :command.function dev_tools_cli_generate_pull_command() { # src/cli_generate_pull_command.sh docker pull $bashly_image } # :command.function dev_tools_cli_generate_help_command() { # src/cli_generate_help_command.sh source_dir=/media/psf/Home/workspace/rcstack-cli-modules/dev-tools target_dir=/media/psf/Home/workspace/rhodecode-docker/scripts/dev-tools echo "To pull latest image:" echo " docker pull $bashly_image" echo "To run generation manually:" echo " docker run --rm -it --user $(id -u):$(id -g) --volume "$source_dir:/app" --volume "$target_dir:/dest" -e BASHLY_TARGET_DIR=/dest $bashly_image generate" echo "To upgrade builting scripts:" echo " docker run --rm -it --user $(id -u):$(id -g) --volume "$source_dir:/app" --volume "$target_dir:/dest" -e BASHLY_TARGET_DIR=/dest $bashly_image generate --upgrade" #bashly generate --upgrade # bashly add completions_script && source ./completions.bash #alias bashly='docker run --rm -it --user $(id -u):$(id -g) --volume "$PWD:/app" dannyben/bashly:edge' } # :command.function dev_tools_stack_cli_version_command() { # src/stack_cli_version_command.sh version=${args[version]} version_file=$(pwd)/VERSION yaml_file=$(pwd)/scripts/rcstack/src/bashly.yml echo "Setting $version to $version_file" echo -n $version > $version_file echo "Setting $version to $yaml_file" sed -i -E "s/version:.+/version: $version/" $yaml_file } # :command.function dev_tools_cli_generate_rc_command() { # src/cli_generate_rc_command.sh one_time=${args[--one-time]} echo "Using scripts/scripts/rcstack/bashly.yaml @ $bashly_image" source_dir=/media/psf/Home/workspace/rcstack-cli-modules/rcstack target_dir=/media/psf/Home/workspace/rhodecode-docker/scripts/rcstack if [[ $one_time ]]; then docker run --rm -it --user $(id -u):$(id -g) --volume "$source_dir:/app" --volume "$target_dir:/dest" -e BASHLY_TARGET_DIR=/dest $bashly_image generate --upgrade else docker run --rm -it --user $(id -u):$(id -g) --volume "$source_dir:/app" --volume "$target_dir:/dest" -e BASHLY_TARGET_DIR=/dest $bashly_image generate --watch fi } # :command.function dev_tools_cli_generate_dev_command() { # src/cli_generate_dev_command.sh one_time=${args[--one-time]} echo "Using scripts/dev-tools/bashly.yaml @ $bashly_image" source_dir=/media/psf/Home/workspace/rcstack-cli-modules/dev-tools target_dir=/media/psf/Home/workspace/rhodecode-docker/scripts/dev-tools if [[ $one_time ]]; then docker run --rm -it --user $(id -u):$(id -g) --volume "$source_dir:/app" --volume "$target_dir:/dest" -e BASHLY_TARGET_DIR=/dest $bashly_image generate --upgrade else docker run --rm -it --user $(id -u):$(id -g) --volume "$source_dir:/app" --volume "$target_dir:/dest" -e BASHLY_TARGET_DIR=/dest $bashly_image generate --watch fi } # :command.function dev_tools_get_build_artifacts_command() { # src/get_build_artifacts_command.sh DEBUG=${args[--debug]} AUTH=${args[--auth]} INSTALLER_URL=${args[--installer-url]} MANIFEST_URL=${args[--manifest-url]} RC_VERSION=${args[--version-name]} VER=$RC_VERSION CACHE_DIR=$PWD/.cache VER_REGEX="$VER+x86_64" if [[ $VER == "" ]]; then msg="Version is empty, please set --version-name correctly" echo "$(red $msg)" exit 1 fi echo "Downloading Artifacts for version: $VER" mkdir -p $CACHE_DIR echo "1/4 Checking available downloads from MANIFEST file" ARTS=$(curl -s $AUTH $MANIFEST_URL | grep --ignore-case "$VER_REGEX" | cut -d ' ' -f 2) if [[ $DEBUG ]]; then echo "DEBUG START" curl -s $AUTH $MANIFEST_URL | grep --ignore-case "$VER_REGEX" || echo "no regex match" curl -s $AUTH $MANIFEST_URL | grep --ignore-case "$VER_REGEX" | cut -d ' ' -f 2 echo "Found following artifacts:" echo $ARTS echo "DEBUG END" fi if [[ $ARTS == "" ]]; then MSG="Failed to found any MANIFEST entries for version $VER make sure there exists release with that version or use --version to specify different version" echo "$(red $MSG)" exit 1 fi echo "2/4 Downloading locale-archive" curl -L https://dls.rhodecode.com/assets/locale-archive -J -O mv -v locale-archive "$CACHE_DIR" # vcsserver/ce/ee echo "3/4 Downloading installer artifacts" for url in $ARTS; do echo "Downloading $url with $AUTH" curl $AUTH --fail-early -L ${url} -J -O done #for url in $(curl -s $MANIFEST_URL | grep --ignore-case -E 'control.+\+x86_64' | cut -d ' ' -f 2); do # echo "Downloading $url" # curl -L ${url} -J -O #done echo "4/4 Downloading installer from $INSTALLER_URL" curl $AUTH -L $INSTALLER_URL -J -O INSTALLER=$(ls -Art RhodeCode-installer-* | tail -n 1) if [[ -n $INSTALLER ]]; then chmod +x "${INSTALLER}" fi echo "Copying artifacts into $CACHE_DIR" mv -v "${INSTALLER}" $CACHE_DIR mv -v *.bz2 $CACHE_DIR ls -lh $CACHE_DIR } # :command.function dev_tools_build_installer_command() { # src/build_installer_command.sh rc_version=${args[--version-name]} export RC_VERSION=$rc_version eval "echo INSTALLER BASED BUILDING${RC_VERSION}" RC_VERSION=$rc_version ./$RC_SCRIPT_NAME stack rhodecode build --progress plain rhodecode } # :command.function dev_tools_get_build_source_command() { # src/get_build_source_command.sh DEBUG=${args[--debug]} AUTH_TOKEN=${args[--auth-token]} SERVER_URL=${args[--server-url]} revision=${args[--revision]} SOURCE_DIR=$PWD/.source RHODECODE_VCS_HASH=$revision RHODECODE_CE_HASH=$revision RHODECODE_EE_HASH=$revision # download sources echo "** download rhodecode source for build from $SERVER_URL using '$revision' hash **" mkdir -p $SOURCE_DIR echo "getting $SERVER_URL/rhodecode-vcsserver/archive/$RHODECODE_VCS_HASH.tgz" curl --fail --header "X-Rc-Auth-Token: $AUTH_TOKEN" -L $SERVER_URL/rhodecode-vcsserver/archive/$RHODECODE_VCS_HASH.tgz?with_hash=0 | tar -xz -C $SOURCE_DIR echo "getting $SERVER_URL/rhodecode-enterprise-ce/archive/$RHODECODE_CE_HASH.tgz" curl --fail --header "X-Rc-Auth-Token: $AUTH_TOKEN" -L $SERVER_URL/rhodecode-enterprise-ce/archive/$RHODECODE_CE_HASH.tgz?with_hash=0 | tar -xz -C $SOURCE_DIR echo "getting $SERVER_URL/rhodecode-enterprise-ee/archive/$RHODECODE_EE_HASH.tgz" curl --fail --header "X-Rc-Auth-Token: $AUTH_TOKEN" -L $SERVER_URL/rhodecode-enterprise-ee/archive/$RHODECODE_EE_HASH.tgz?with_hash=0 | tar -xz -C $SOURCE_DIR rm -rf $SOURCE_DIR/rhodecode-vcsserver && \ mv $SOURCE_DIR/*rhodecode-vcsserver-* $SOURCE_DIR/rhodecode-vcsserver rm -rf $SOURCE_DIR/rhodecode-vcsserver/.hg rm -rf $SOURCE_DIR/rhodecode-enterprise-ce && \ mv $SOURCE_DIR/*rhodecode-enterprise-ce-* $SOURCE_DIR/rhodecode-enterprise-ce rm -rf $SOURCE_DIR/rhodecode-enterprise-ce/.hg rm -rf $SOURCE_DIR/rhodecode-enterprise-ee && \ mv $SOURCE_DIR/*rhodecode-enterprise-ee-* $SOURCE_DIR/rhodecode-enterprise-ee rm -rf $SOURCE_DIR/rhodecode-enterprise-ee/.hg echo "downloading sources done to $SOURCE_DIR, directory now consists:" ls -l $SOURCE_DIR echo "" date_formatted=$(date +%Y.%m.%d.1) echo "to create source based build run:" echo " ./$RC_SCRIPT_NAME build-source --version-name 4.28.0.$date_formatted --tag beta" echo " ./$RC_SCRIPT_NAME build-source --version-name 5.0.0.$date_formatted --tag beta" } # :command.function dev_tools_build_source_command() { # src/build_source_command.sh rc_version=${args[--version-name]} source_build_yaml=${args[--source-build-yaml]} eval "tags_data=(${args[--tag]})" export RC_VERSION=$rc_version export RC_EDITION=ee VCS_SHA=$(cat .source/rhodecode-vcsserver/.archival.txt | grep commit_id | cut -d ":" -f 2 | cut -c 1-6) CE_SHA=$(cat .source/rhodecode-enterprise-ce/.archival.txt | grep commit_id | cut -d ":" -f 2 | cut -c 1-6) EE_SHA=$(cat .source/rhodecode-enterprise-ee/.archival.txt | grep commit_id | cut -d ":" -f 2 | cut -c 1-6) echo "build_source: SOURCE BASED BUILDING: $rc_version @ vcs:$VCS_SHA ce:$CE_SHA ee:$EE_SHA" echo "build_source: tags:" ${tags_data[@]} echo "" RC_SCRIPT_NAME=rcstack DOCKER_SCAN_SUGGEST=false RC_VERSION=$rc_version \ ./$RC_SCRIPT_NAME stack rhodecode -f $source_build_yaml \ --progress plain \ build \ --build-arg VCS_SHA=$VCS_SHA \ --build-arg CE_SHA=$CE_SHA \ --build-arg EE_SHA=$EE_SHA \ rhodecode # now tag the ee to ce docker tag rhodecode/rhodecode-ee:$rc_version rhodecode/rhodecode-ce:$rc_version # apply the tags for tag in "${tags_data[@]}"; do echo "build_source: creating tag:$tag" docker tag rhodecode/rhodecode-ee:$rc_version rhodecode/rhodecode-ee:$tag docker tag rhodecode/rhodecode-ee:$rc_version rhodecode/rhodecode-ce:$tag done echo "build_source: consider setting release version using" echo " ./$RC_SCRIPT_NAME cli set-runtime-image $rc_version" echo "build_source: push this image using" echo " docker push rhodecode/rhodecode-ee:$rc_version" echo " docker push rhodecode/rhodecode-ce:$rc_version" for tag in "${tags_data[@]}"; do echo " docker push rhodecode/rhodecode-ee:$tag" echo " docker push rhodecode/rhodecode-ce:$tag" done } # :command.parse_requirements parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --version | -v) version_command exit ;; --help | -h) long_usage=yes dev_tools_usage exit ;; *) break ;; esac done # :command.command_filter action=${1:-} case $action in -*) ;; vcs | v) action="vcs" shift dev_tools_vcs_parse_requirements "$@" shift $# ;; ee | e) action="ee" shift dev_tools_ee_parse_requirements "$@" shift $# ;; ce | c) action="ce" shift dev_tools_ce_parse_requirements "$@" shift $# ;; celery) action="celery" shift dev_tools_celery_parse_requirements "$@" shift $# ;; celeryd) action="celeryd" shift dev_tools_celeryd_parse_requirements "$@" shift $# ;; ssh) action="ssh" shift dev_tools_ssh_parse_requirements "$@" shift $# ;; sshd) action="sshd" shift dev_tools_sshd_parse_requirements "$@" shift $# ;; svn) action="svn" shift dev_tools_svn_parse_requirements "$@" shift $# ;; svnd) action="svnd" shift dev_tools_svnd_parse_requirements "$@" shift $# ;; tools | t) action="tools" shift dev_tools_tools_parse_requirements "$@" shift $# ;; dev-env) action="dev-env" shift dev_tools_dev_env_parse_requirements "$@" shift $# ;; prune) action="prune" shift dev_tools_prune_parse_requirements "$@" shift $# ;; prune-all) action="prune-all" shift dev_tools_prune_all_parse_requirements "$@" shift $# ;; cli-generate-pull) action="cli-generate-pull" shift dev_tools_cli_generate_pull_parse_requirements "$@" shift $# ;; cli-generate-help) action="cli-generate-help" shift dev_tools_cli_generate_help_parse_requirements "$@" shift $# ;; stack-cli-version) action="stack-cli-version" shift dev_tools_stack_cli_version_parse_requirements "$@" shift $# ;; cli-generate-rc) action="cli-generate-rc" shift dev_tools_cli_generate_rc_parse_requirements "$@" shift $# ;; cli-generate-dev) action="cli-generate-dev" shift dev_tools_cli_generate_dev_parse_requirements "$@" shift $# ;; get-build-artifacts) action="get-build-artifacts" shift dev_tools_get_build_artifacts_parse_requirements "$@" shift $# ;; build-installer) action="build-installer" shift dev_tools_build_installer_parse_requirements "$@" shift $# ;; get-build-source) action="get-build-source" shift dev_tools_get_build_source_parse_requirements "$@" shift $# ;; build-source) action="build-source" shift dev_tools_build_source_parse_requirements "$@" shift $# ;; # :command.command_fallback "") dev_tools_usage >&2 exit 1 ;; *) printf "invalid command: %s\n" "$action" >&2 exit 1 ;; esac # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done } # :command.parse_requirements dev_tools_vcs_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_vcs_usage exit ;; *) break ;; esac done # :command.command_filter action="vcs" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done } # :command.parse_requirements dev_tools_ee_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_ee_usage exit ;; *) break ;; esac done # :command.command_filter action="ee" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done } # :command.parse_requirements dev_tools_ce_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_ce_usage exit ;; *) break ;; esac done # :command.command_filter action="ce" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done } # :command.parse_requirements dev_tools_celery_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_celery_usage exit ;; *) break ;; esac done # :command.command_filter action="celery" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in # :flag.case --workdir) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--workdir']="$2" shift shift else printf "%s\n" "--workdir requires an argument: --workdir WORKDIR" >&2 exit 1 fi ;; # :flag.case --cmd) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--cmd']="$2" shift shift else printf "%s\n" "--cmd requires an argument: --cmd CMD" >&2 exit 1 fi ;; -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done # :command.default_assignments [[ -n ${args['--workdir']:-} ]] || args['--workdir']="/home/rhodecode/rhodecode-enterprise-ce" [[ -n ${args['--cmd']:-} ]] || args['--cmd']=".dev-env/cmd-celery.sh" } # :command.parse_requirements dev_tools_celeryd_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_celeryd_usage exit ;; *) break ;; esac done # :command.command_filter action="celeryd" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in # :flag.case --workdir) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--workdir']="$2" shift shift else printf "%s\n" "--workdir requires an argument: --workdir WORKDIR" >&2 exit 1 fi ;; # :flag.case --cmd) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--cmd']="$2" shift shift else printf "%s\n" "--cmd requires an argument: --cmd CMD" >&2 exit 1 fi ;; -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done # :command.default_assignments [[ -n ${args['--workdir']:-} ]] || args['--workdir']="/home/rhodecode/rhodecode-enterprise-ce" [[ -n ${args['--cmd']:-} ]] || args['--cmd']=".dev-env/cmd-celeryd.sh" } # :command.parse_requirements dev_tools_ssh_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_ssh_usage exit ;; *) break ;; esac done # :command.command_filter action="ssh" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in # :flag.case --workdir) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--workdir']="$2" shift shift else printf "%s\n" "--workdir requires an argument: --workdir WORKDIR" >&2 exit 1 fi ;; # :flag.case --cmd) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--cmd']="$2" shift shift else printf "%s\n" "--cmd requires an argument: --cmd CMD" >&2 exit 1 fi ;; -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done # :command.default_assignments [[ -n ${args['--workdir']:-} ]] || args['--workdir']="/home/rhodecode/rhodecode-enterprise-ce" [[ -n ${args['--cmd']:-} ]] || args['--cmd']=".dev-env/cmd-ssh.sh" } # :command.parse_requirements dev_tools_sshd_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_sshd_usage exit ;; *) break ;; esac done # :command.command_filter action="sshd" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in # :flag.case --workdir) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--workdir']="$2" shift shift else printf "%s\n" "--workdir requires an argument: --workdir WORKDIR" >&2 exit 1 fi ;; # :flag.case --cmd) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--cmd']="$2" shift shift else printf "%s\n" "--cmd requires an argument: --cmd CMD" >&2 exit 1 fi ;; -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done # :command.default_assignments [[ -n ${args['--workdir']:-} ]] || args['--workdir']="/home/rhodecode/rhodecode-enterprise-ce" [[ -n ${args['--cmd']:-} ]] || args['--cmd']=".dev-env/cmd-sshd.sh" } # :command.parse_requirements dev_tools_svn_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_svn_usage exit ;; *) break ;; esac done # :command.command_filter action="svn" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in # :flag.case --workdir) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--workdir']="$2" shift shift else printf "%s\n" "--workdir requires an argument: --workdir WORKDIR" >&2 exit 1 fi ;; # :flag.case --cmd) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--cmd']="$2" shift shift else printf "%s\n" "--cmd requires an argument: --cmd CMD" >&2 exit 1 fi ;; -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done # :command.default_assignments [[ -n ${args['--workdir']:-} ]] || args['--workdir']="/home/rhodecode/rhodecode-enterprise-ce" [[ -n ${args['--cmd']:-} ]] || args['--cmd']=".dev-env/cmd-svn.sh" } # :command.parse_requirements dev_tools_svnd_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_svnd_usage exit ;; *) break ;; esac done # :command.command_filter action="svnd" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in # :flag.case --workdir) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--workdir']="$2" shift shift else printf "%s\n" "--workdir requires an argument: --workdir WORKDIR" >&2 exit 1 fi ;; # :flag.case --cmd) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--cmd']="$2" shift shift else printf "%s\n" "--cmd requires an argument: --cmd CMD" >&2 exit 1 fi ;; -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done # :command.default_assignments [[ -n ${args['--workdir']:-} ]] || args['--workdir']="/home/rhodecode/rhodecode-enterprise-ce" [[ -n ${args['--cmd']:-} ]] || args['--cmd']=".dev-env/cmd-svnd.sh" } # :command.parse_requirements dev_tools_tools_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_tools_usage exit ;; *) break ;; esac done # :command.command_filter action="tools" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done } # :command.parse_requirements dev_tools_dev_env_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_dev_env_usage exit ;; *) break ;; esac done # :command.command_filter action="dev-env" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done } # :command.parse_requirements dev_tools_prune_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_prune_usage exit ;; *) break ;; esac done # :command.command_filter action="prune" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done } # :command.parse_requirements dev_tools_prune_all_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_prune_all_usage exit ;; *) break ;; esac done # :command.command_filter action="prune-all" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done } # :command.parse_requirements dev_tools_cli_generate_pull_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_cli_generate_pull_usage exit ;; *) break ;; esac done # :command.command_filter action="cli-generate-pull" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done } # :command.parse_requirements dev_tools_cli_generate_help_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_cli_generate_help_usage exit ;; *) break ;; esac done # :command.command_filter action="cli-generate-help" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done } # :command.parse_requirements dev_tools_stack_cli_version_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_stack_cli_version_usage exit ;; *) break ;; esac done # :command.command_filter action="stack-cli-version" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple if [[ -z ${args['version']+x} ]]; then args['version']=$1 shift else printf "invalid argument: %s\n" "$key" >&2 exit 1 fi ;; esac done # :command.required_args_filter if [[ -z ${args['version']+x} ]]; then printf "missing required argument: VERSION\nusage: dev-tools stack-cli-version VERSION\n" >&2 exit 1 fi } # :command.parse_requirements dev_tools_cli_generate_rc_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_cli_generate_rc_usage exit ;; *) break ;; esac done # :command.command_filter action="cli-generate-rc" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in # :flag.case --one-time | -o) # :flag.case_no_arg args['--one-time']=1 shift ;; -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done } # :command.parse_requirements dev_tools_cli_generate_dev_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_cli_generate_dev_usage exit ;; *) break ;; esac done # :command.command_filter action="cli-generate-dev" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in # :flag.case --one-time | -o) # :flag.case_no_arg args['--one-time']=1 shift ;; -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done } # :command.parse_requirements dev_tools_get_build_artifacts_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_get_build_artifacts_usage exit ;; *) break ;; esac done # :command.command_filter action="get-build-artifacts" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in # :flag.case --auth) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--auth']="$2" shift shift else printf "%s\n" "--auth requires an argument: --auth AUTH" >&2 exit 1 fi ;; # :flag.case --installer-url) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--installer-url']="$2" shift shift else printf "%s\n" "--installer-url requires an argument: --installer-url INSTALLER_URL" >&2 exit 1 fi ;; # :flag.case --manifest-url) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--manifest-url']="$2" shift shift else printf "%s\n" "--manifest-url requires an argument: --manifest-url MANIFEST_URL" >&2 exit 1 fi ;; # :flag.case --version-name) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--version-name']="$2" shift shift else printf "%s\n" "--version-name requires an argument: --version-name VERSION_NAME" >&2 exit 1 fi ;; -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done # :command.default_assignments [[ -n ${args['--auth']:-} ]] || args['--auth']="" [[ -n ${args['--installer-url']:-} ]] || args['--installer-url']="https://dls.rhodecode.com/dls/N2E2ZTY1NzA3NjYxNDA2NTc1NjI3MTcyNzA2MjcxNzIyZTcwNjI3YQ==/rhodecode-control/latest-linux-ee" [[ -n ${args['--manifest-url']:-} ]] || args['--manifest-url']="https://dls.rhodecode.com/linux/MANIFEST" [[ -n ${args['--version-name']:-} ]] || args['--version-name']="$RC_CLI_VERSION_NAME" } # :command.parse_requirements dev_tools_build_installer_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_build_installer_usage exit ;; *) break ;; esac done # :command.command_filter action="build-installer" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in # :flag.case --version-name) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--version-name']="$2" shift shift else printf "%s\n" "--version-name requires an argument: --version-name VERSION_NAME" >&2 exit 1 fi ;; -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done # :command.default_assignments [[ -n ${args['--version-name']:-} ]] || args['--version-name']="$RC_CLI_VERSION_NAME" } # :command.parse_requirements dev_tools_get_build_source_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_get_build_source_usage exit ;; *) break ;; esac done # :command.dependencies_filter if command -v curl >/dev/null 2>&1; then deps['curl']="$(command -v curl | head -n1)" else printf "missing dependency: curl\n" >&2 exit 1 fi if command -v tar >/dev/null 2>&1; then deps['tar']="$(command -v tar | head -n1)" else printf "missing dependency: tar\n" >&2 exit 1 fi # :command.command_filter action="get-build-source" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in # :flag.case --revision) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--revision']="$2" shift shift else printf "%s\n" "--revision requires an argument: --revision REVISION" >&2 exit 1 fi ;; # :flag.case --auth-token) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--auth-token']="$2" shift shift else printf "%s\n" "--auth-token requires an argument: --auth-token AUTH_TOKEN" >&2 exit 1 fi ;; # :flag.case --server-url) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--server-url']="$2" shift shift else printf "%s\n" "--server-url requires an argument: --server-url SERVER_URL" >&2 exit 1 fi ;; -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done # :command.default_assignments [[ -n ${args['--revision']:-} ]] || args['--revision']="default" [[ -n ${args['--server-url']:-} ]] || args['--server-url']="https://code.rhodecode.com" } # :command.parse_requirements dev_tools_build_source_parse_requirements() { # :command.fixed_flags_filter while [[ $# -gt 0 ]]; do case "${1:-}" in --help | -h) long_usage=yes dev_tools_build_source_usage exit ;; *) break ;; esac done # :command.command_filter action="build-source" # :command.parse_requirements_while while [[ $# -gt 0 ]]; do key="$1" case "$key" in # :flag.case --version-name) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--version-name']="$2" shift shift else printf "%s\n" "--version-name requires an argument: --version-name VERSION_NAME" >&2 exit 1 fi ;; # :flag.case --source-build-yaml) # :flag.case_arg if [[ -n ${2+x} ]]; then args['--source-build-yaml']="$2" shift shift else printf "%s\n" "--source-build-yaml requires an argument: --source-build-yaml BUILD_SOURCE_YAML" >&2 exit 1 fi ;; # :flag.case --tag) # :flag.case_arg if [[ -n ${2+x} ]]; then if [[ -z ${args['--tag']+x} ]]; then args['--tag']="\"$2\"" else args['--tag']="${args[--tag]} \"$2\"" fi shift shift else printf "%s\n" "--tag requires an argument: --tag TAG" >&2 exit 1 fi ;; -?*) printf "invalid option: %s\n" "$key" >&2 exit 1 ;; *) # :command.parse_requirements_case # :command.parse_requirements_case_simple printf "invalid argument: %s\n" "$key" >&2 exit 1 ;; esac done # :command.default_assignments [[ -n ${args['--version-name']:-} ]] || args['--version-name']="$RC_CLI_VERSION_NAME" [[ -n ${args['--source-build-yaml']:-} ]] || args['--source-build-yaml']="build_yaml/docker-compose-apps.5.yaml" } # :command.initialize initialize() { version="1.0.0" long_usage='' set -e # src/initialize.sh bashly_image="dannyben/bashly:1.0.8" } # :command.run run() { declare -A args=() declare -A deps=() declare -a other_args=() declare -a input=() normalize_input "$@" parse_requirements "${input[@]}" case "$action" in "vcs") dev_tools_vcs_command ;; "ee") dev_tools_ee_command ;; "ce") dev_tools_ce_command ;; "celery") dev_tools_celery_command ;; "celeryd") dev_tools_celeryd_command ;; "ssh") dev_tools_ssh_command ;; "sshd") dev_tools_sshd_command ;; "svn") dev_tools_svn_command ;; "svnd") dev_tools_svnd_command ;; "tools") dev_tools_tools_command ;; "dev-env") dev_tools_dev_env_command ;; "prune") dev_tools_prune_command ;; "prune-all") dev_tools_prune_all_command ;; "cli-generate-pull") dev_tools_cli_generate_pull_command ;; "cli-generate-help") dev_tools_cli_generate_help_command ;; "stack-cli-version") dev_tools_stack_cli_version_command ;; "cli-generate-rc") dev_tools_cli_generate_rc_command ;; "cli-generate-dev") dev_tools_cli_generate_dev_command ;; "get-build-artifacts") dev_tools_get_build_artifacts_command ;; "build-installer") dev_tools_build_installer_command ;; "get-build-source") dev_tools_get_build_source_command ;; "build-source") dev_tools_build_source_command ;; esac } initialize run "$@"