#!/usr/bin/env bash set -euo pipefail source "$(dirname "$0")/lib.sh" umask 077 prepare_secret() { local path=$1 local value=$2 if [[ ! -f "$path" ]]; then printf '%s\n' "$value" >"$path" fi chmod 600 "$path" } mkdir -p \ "$E2E_ROOT/control/runtime/state" \ "$E2E_ROOT/control/runtime/backups" \ "$E2E_ROOT/control/secrets" prepare_secret \ "$E2E_ROOT/control/secrets/archive_control_token" \ "archive-control-e2e-token" for node in "${E2E_NODES[@]}"; do node_root="$E2E_ROOT/$node" mkdir -p \ "$node_root/secrets" \ "$node_root/runtime/syncthing" \ "$node_root/runtime/sync" \ "$node_root/runtime/qb-config/qBittorrent" \ "$node_root/runtime/qb-data" \ "$node_root/runtime/client-state" \ "$node_root/runtime/client-backups" prepare_secret \ "$node_root/secrets/archive_control_token" \ "archive-control-e2e-token" prepare_secret \ "$node_root/secrets/syncthing_api_key" \ "archive-control-e2e-${node}-syncthing-key" prepare_secret "$node_root/secrets/qb_password" "adminadmin" qb_config="$node_root/runtime/qb-config/qBittorrent/qBittorrent.conf" if [[ ! -f "$qb_config" ]]; then cp "$E2E_ROOT/common/qBittorrent.conf" "$qb_config" fi done