#!/usr/bin/env bash # CONSTANTS BASEDIR=$(dirname "$0") DEFAULT_CONFIG="$BASEDIR/../config/default.conf" ARG1="${1:-}" # FUNCTIONS function usage { echo "$(basename "$0") [--edit | --config]" } function parse_options { COMMAND=show while [[ $# -gt 0 ]]; do case "$1" in --edit) COMMAND=edit ;; --config) COMMAND=config ;; --help | -h) usage && exit 0 ;; *) echo >&2 "Unknown option: $1" && usage && exit 2 ;; esac shift 1 # Move to the next argument done } function show_defaults { [[ ! -f $DEFAULT_CONFIG ]] && echo >&2 "config file missing: $DEFAULT_CONFIG" && exit 3 source "$DEFAULT_CONFIG" echo "STORAGE_DISK=$STORAGE_DISK" echo "STORAGE_SIZE=$STORAGE_SIZE" echo "BRIDGE=$BRIDGE" echo "MEMORY=$MEMORY" echo "SWAP=$SWAP" echo "CPU=$CPU" } function compute_cpu_cores { nproc=$(nproc) [[ $nproc -ge 16 ]] && cores=4 [[ $nproc -ge 8 ]] && cores=2 [[ $nproc -lt 8 ]] && cores=1 echo $cores } function choose_from_selection { local name=$1[@] local selection=("${!name}") local length=${#selection[@]} [[ $length == 0 ]] && echo >&2 'no values from selection!' && exit 7 [[ $length == 1 ]] && chosen=${selection[0]} && return echo "$2:" echo ----------------- PS3="Choose number: " select chosen in "${selection[@]}"; do [[ -n $chosen ]] && break done $DEFAULT_CONFIG <