#! /bin/bash ############################################################################### # GOLBALS # ############################################################################### echo ' _ _ _______ _______ __________ _ _ | \ | | ____\ \/ /_ _|__ / ____| \ | | | \| | _| \ / | | / /| _| | \| | | |\ | |___ / \ | | / /_| |___| |\ | |_| \_|_____/_/\_\ |_| /____|_____|_| \_| --- Power by NextZEN --- ' ((EUID)) && sudo_cmd="sudo" SERVICES=( "casaos-gateway.service" "casaos-message-bus.service" "casaos-user-service.service" "casaos-local-storage.service" "casaos-app-management.service" "rclone.service" "casaos.service" # must be the last one so update from UI can work ) # COLORS readonly COLOUR_RESET='\e[0m' readonly aCOLOUR=( '\e[38;5;154m' # green | Lines, bullets and separators '\e[1m' # Bold white | Main descriptions '\e[90m' # Grey | Credits '\e[91m' # Red | Update notifications Alert '\e[33m' # Yellow | Emphasis ) readonly GREEN_LINE=" ${aCOLOUR[0]}─────────────────────────────────────────────────────$COLOUR_RESET" readonly GREEN_BULLET=" ${aCOLOUR[0]}-$COLOUR_RESET" readonly GREEN_SEPARATOR="${aCOLOUR[0]}:$COLOUR_RESET" NEXTZEN_DOWNLOAD_DOMAIN="https://dl.nextzenos.com" CASAOS_DOWNLOAD_DOMAIN="https://get.casaos.io" Show() { # OK if (($1 == 0)); then echo -e "${aCOLOUR[2]}[$COLOUR_RESET${aCOLOUR[0]} OK $COLOUR_RESET${aCOLOUR[2]}]$COLOUR_RESET $2" # FAILED elif (($1 == 1)); then echo -e "${aCOLOUR[2]}[$COLOUR_RESET${aCOLOUR[3]}FAILED$COLOUR_RESET${aCOLOUR[2]}]$COLOUR_RESET $2" exit 1 # INFO elif (($1 == 2)); then echo -e "${aCOLOUR[2]}[$COLOUR_RESET${aCOLOUR[0]} INFO $COLOUR_RESET${aCOLOUR[2]}]$COLOUR_RESET $2" # NOTICE elif (($1 == 3)); then echo -e "${aCOLOUR[2]}[$COLOUR_RESET${aCOLOUR[4]}NOTICE$COLOUR_RESET${aCOLOUR[2]}]$COLOUR_RESET $2" fi } stop() { for SERVICE in "${SERVICES[@]}"; do Show 2 "Stopping ${SERVICE}..." ${sudo_cmd} systemctl stop "${SERVICE}" || Show 3 "Service ${SERVICE} does not exist." done main } restart() { for SERVICE in "${SERVICES[@]}"; do Show 2 "restart ${SERVICE}..." ${sudo_cmd} systemctl restart "${SERVICE}" || Show 3 "Service ${SERVICE} does not exist." done main } status() { ${sudo_cmd} systemctl --type service --all | grep casaos main } stopOne() { echo service name: read -r service /dev/null 2>&1; then echo "valid version. Installing nextzenos $version" curl -fsSL "${NEXTZEN_DOWNLOAD_DOMAIN}/setup/nextzenos/$version/install.sh" | ${sudo_cmd} bash else echo "Invalid version. Please enter a valid version number." fi } installCasa() { echo "Enter Version:" read -r version /dev/null 2>&1; then echo "valid version. Installing casaos v$version..." curl -fsSL "${CASAOS_DOWNLOAD_DOMAIN}/install/v$version" | ${sudo_cmd} bash else echo "Invalid version. Please enter a valid version number." fi } update() { echo "Enter Version:" read -r version /dev/null 2>&1; then echo "valid version. Updating nextzen $version" curl -fsSL "${NEXTZEN_DOWNLOAD_DOMAIN}/setup/nextzenos/$version/update.sh" | ${sudo_cmd} bash else echo "Invalid version. Please enter a valid version number." fi } updateCasa() { echo "Enter Version:" read -r version /dev/null 2>&1; then echo "valid version. Updating casaos v$version" curl -fsSL "${CASAOS_DOWNLOAD_DOMAIN}/update/v$version" | ${sudo_cmd} bash else echo "Invalid version. Please enter a valid version number." fi } uninstall() { ${sudo_cmd} nextzenos-uninstall reload } uninstallCasa() { ${sudo_cmd} casaos-uninstall reload } log() { # sudo journalctl -xef -u ${service name} echo "Enter Services name:" read -r service