91 lines
2.1 KiB
Bash
Executable File
91 lines
2.1 KiB
Bash
Executable File
#!/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
|