Files
HomeAssistantAddons/gvm/run.sh
2025-05-07 18:16:02 +02:00

58 lines
1.3 KiB
Bash

#!/usr/bin/env bash
set -e
set -o pipefail
log() {
echo "[GVM ADD-ON] $(date +"%Y-%m-%d %H:%M:%S") - $*"
}
# Path to options provided by Home Assistant
CONFIG_PATH="/data/options.json"
if [ ! -f "$CONFIG_PATH" ]; then
log "ERROR: Config file not found at $CONFIG_PATH"
exit 1
fi
# Read variables from options.json
USERNAME=$(jq -r '.username' "$CONFIG_PATH")
PASSWORD=$(jq -r '.password' "$CONFIG_PATH")
TZ=$(jq -r '.TZ // empty' "$CONFIG_PATH")
DB_PASSWORD=$(jq -r '.DB_PASSWORD // empty' "$CONFIG_PATH")
HTTPS=$(jq -r '.HTTPS // "false"' "$CONFIG_PATH")
SSHD=$(jq -r '.SSHD // "true"' "$CONFIG_PATH")
# Validate
if [ -z "$USERNAME" ] || [ -z "$PASSWORD" ]; then
log "ERROR: username and/or password not set in options.json"
exit 1
fi
# Export variables for GVM
export USERNAME
export PASSWORD
export DB_PASSWORD
export TZ
export HTTPS
export SSHD
log "INFO: Starting GVM (OpenVAS) add-on as user '$USERNAME'"
# Set timezone if available
if [ -n "$TZ" ]; then
log "INFO: Setting timezone to $TZ"
ln -snf "/usr/share/zoneinfo/$TZ" /etc/localtime
echo "$TZ" > /etc/timezone
fi
# Initialize data directory
DATA_DIR="/data"
if [ ! -d "$DATA_DIR" ]; then
log "INFO: Creating data directory at $DATA_DIR"
mkdir -p "$DATA_DIR"
fi
log "INFO: Launching GVM service..."
exec gvm-start | tee -a "$DATA_DIR/gvm.log"