#!/bin/bash # This script is used to install the dropshell agent on a remote server. SCRIPT_DIR=$(dirname "$0") set -a AGENT_PATH="$SCRIPT_DIR" set +a if [ -f "$SCRIPT_DIR/common.sh" ]; then source "$SCRIPT_DIR/common.sh" else echo "Error: common.sh not found in $SCRIPT_DIR" exit 1 fi _check_required_env_vars "AGENT_PATH" function install_bb64() { if ! curl -fsSL "https://gitea.jde.nz/public/bb64/releases/download/latest/install.sh" | \ bash -s -- "$AGENT_PATH" "$(id -u "$USER"):$(id -g "$USER")"; then _die "Failed to install bb64. Curl returned non-zero exit code." fi # test if bb64 is installed if ! VER=$("$AGENT_PATH/bb64" -v); then _die "bb64 did not install correctly." fi echo "bb64 v$VER installed." return 0; } #------------------------------------------------------------------------- # Check pre-requisites # Check if curl is installed if ! command -v curl &> /dev/null; then _die "Curl is not installed. Curl is required for agent installation." fi # check docker installation if ! command -v docker &> /dev/null; then echo "Docker is not installed. Docker is required for agent installation." exit 1 fi # check rsync installation if ! command -v rsync &> /dev/null; then echo "Rsync is not installed. Rsync is required for agent installation." exit 1 fi #------------------------------------------------------------------------- echo "Installing dropshell agent..." install_bb64 #------------------------------------------------------------------------- # confirm we're in a good state. required_files=( "$AGENT_PATH/bb64" "$AGENT_PATH/_allservicesstatus.sh" "$AGENT_PATH/common.sh" "$AGENT_PATH/datacommands.sh" ) # check if all files exist for file in "${required_files[@]}"; do if [ ! -f "$file" ]; then _die "$file does not exist. Please check the installation." fi done #------------------------------------------------------------------------- echo "Completed dropshell agent installation." #------------------------------------------------------------------------- exit 0