|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +declare ACTION="" |
| 4 | +declare MODE="" |
| 5 | +declare COMPOSE_FILE_PATH="" |
| 6 | +declare UTILS_PATH="" |
| 7 | +declare SERVICE_NAMES=() |
| 8 | +declare STACK="fhir-info-gateway" |
| 9 | + |
| 10 | +function init_vars() { |
| 11 | + ACTION=$1 |
| 12 | + MODE=$2 |
| 13 | + |
| 14 | + COMPOSE_FILE_PATH=$( |
| 15 | + cd "$(dirname "${BASH_SOURCE[0]}")" || exit |
| 16 | + pwd -P |
| 17 | + ) |
| 18 | + |
| 19 | + UTILS_PATH="${COMPOSE_FILE_PATH}/../utils" |
| 20 | + |
| 21 | + SERVICE_NAMES=( |
| 22 | + "fhir-info-gateway" |
| 23 | + ) |
| 24 | + |
| 25 | + readonly ACTION |
| 26 | + readonly MODE |
| 27 | + readonly COMPOSE_FILE_PATH |
| 28 | + readonly UTILS_PATH |
| 29 | + readonly SERVICE_NAMES |
| 30 | + readonly STACK |
| 31 | +} |
| 32 | + |
| 33 | +# shellcheck disable=SC1091 |
| 34 | +function import_sources() { |
| 35 | + source "${UTILS_PATH}/docker-utils.sh" |
| 36 | + source "${UTILS_PATH}/log.sh" |
| 37 | +} |
| 38 | + |
| 39 | +function initialize_package() { |
| 40 | + local package_dev_compose_filename="" |
| 41 | + if [[ "${MODE}" == "dev" ]]; then |
| 42 | + log info "Running package in DEV mode" |
| 43 | + package_dev_compose_filename="docker-compose.dev.yml" |
| 44 | + else |
| 45 | + log info "Running package in PROD mode" |
| 46 | + fi |
| 47 | + |
| 48 | + ( |
| 49 | + docker::deploy_service $STACK "${COMPOSE_FILE_PATH}" "docker-compose.yml" "$package_dev_compose_filename" |
| 50 | + ) || { |
| 51 | + log error "Failed to deploy package" |
| 52 | + exit 1 |
| 53 | + } |
| 54 | +} |
| 55 | + |
| 56 | +function destroy_package() { |
| 57 | + docker::stack_destroy "$STACK" |
| 58 | +} |
| 59 | + |
| 60 | +main() { |
| 61 | + init_vars "$@" |
| 62 | + import_sources |
| 63 | + |
| 64 | + if [[ "${ACTION}" == "init" ]] || [[ "${ACTION}" == "up" ]]; then |
| 65 | + log info "Running package in Single node mode" |
| 66 | + |
| 67 | + initialize_package |
| 68 | + elif [[ "${ACTION}" == "down" ]]; then |
| 69 | + log info "Scaling down package" |
| 70 | + |
| 71 | + docker::scale_services "$STACK" 0 |
| 72 | + elif [[ "${ACTION}" == "destroy" ]]; then |
| 73 | + log info "Destroying package" |
| 74 | + |
| 75 | + destroy_package |
| 76 | + else |
| 77 | + log error "Valid options are: init, up, down, or destroy" |
| 78 | + fi |
| 79 | +} |
| 80 | + |
| 81 | +main "$@" |
0 commit comments