#!/bin/env fish begin set -l dir (status dirname) set -l source "$dir/docker-compose.secrets.yml" source "$dir/../service.fish" function installSW -V dir -V domain -V source set -l service "teamspeak" set -l pw (nix-shell -p keepassxc --run "keepassxc-cli generate --length 32") set -l db "TeamSpeak" set -l tsEnv "$(getServiceKey "$service").environment" set -l dbEnv "$(getServiceKey db).environment" initializeServiceInstallation $argv cp "$dir/docker-compose.base.yml" (getServiceRoot $argv) USER="$service" begin yq "$tsEnv.TS3SERVER_DB_USER = env(USER)" "$source" | \ yq "$dbEnv.MARIADB_USER = env(USER)" end | \ PW="$pw" begin yq "$tsEnv.TS3SERVER_DB_PASSWORD = env(PW)" | \ yq "$dbEnv.MARIADB_PASSWORD = env(PW)" end | \ DB="$db" begin yq "$tsEnv.TS3SERVER_DB_NAME = env(DB)" | \ yq "$dbEnv.MARIADB_DATABASE = env(DB)" end | \ sudo tee (getServiceSecretsConfig $argv) >/dev/null installDockerService $argv end function configureSW -V dir configureDockerService $argv end function getServiceServers -V server end function getServiceLocations end function getBackupArgs printf "%s\n" --hidden --no-ignore . --exclude "docker-compose.yml" (getServiceRoot $argv) end runInstaller --force $argv end