fixed missing temp env file

This commit is contained in:
Ludwig Lehnert
2026-02-18 17:35:19 +01:00
parent 7fc629c2a8
commit 014e225a54

34
setup
View File

@@ -5,10 +5,30 @@ ENV_FILE=".env"
SERVICE_ACCOUNT_NAME="FileShare_ServiceAccount" SERVICE_ACCOUNT_NAME="FileShare_ServiceAccount"
BOOTSTRAP_ENV_FILE="" BOOTSTRAP_ENV_FILE=""
ORIGINAL_ENV_BACKUP=""
BOOTSTRAP_ENV_WRITTEN=0
FINAL_ENV_WRITTEN=0
ENV_PREEXISTED=0
cleanup() { cleanup() {
if [[ -n "$BOOTSTRAP_ENV_FILE" && -f "$BOOTSTRAP_ENV_FILE" ]]; then if [[ -n "$BOOTSTRAP_ENV_FILE" && -f "$BOOTSTRAP_ENV_FILE" ]]; then
rm -f "$BOOTSTRAP_ENV_FILE" rm -f "$BOOTSTRAP_ENV_FILE"
fi fi
if [[ "$BOOTSTRAP_ENV_WRITTEN" -eq 1 && "$FINAL_ENV_WRITTEN" -eq 0 ]]; then
if [[ "$ENV_PREEXISTED" -eq 1 && -n "$ORIGINAL_ENV_BACKUP" && -f "$ORIGINAL_ENV_BACKUP" ]]; then
cp "$ORIGINAL_ENV_BACKUP" "$ENV_FILE"
chmod 600 "$ENV_FILE"
printf "Restored original %s after setup failure.\n" "$ENV_FILE" >&2
else
rm -f "$ENV_FILE"
printf "Removed temporary %s after setup failure.\n" "$ENV_FILE" >&2
fi
fi
if [[ -n "$ORIGINAL_ENV_BACKUP" && -f "$ORIGINAL_ENV_BACKUP" ]]; then
rm -f "$ORIGINAL_ENV_BACKUP"
fi
} }
trap cleanup EXIT trap cleanup EXIT
@@ -96,6 +116,13 @@ print(''.join(secrets.choice(alphabet) for _ in range(48)))
PY PY
)" )"
if [[ -f "$ENV_FILE" ]]; then
ENV_PREEXISTED=1
ORIGINAL_ENV_BACKUP="$(mktemp)"
cp "$ENV_FILE" "$ORIGINAL_ENV_BACKUP"
chmod 600 "$ORIGINAL_ENV_BACKUP"
fi
BOOTSTRAP_ENV_FILE="$(mktemp)" BOOTSTRAP_ENV_FILE="$(mktemp)"
chmod 600 "$BOOTSTRAP_ENV_FILE" chmod 600 "$BOOTSTRAP_ENV_FILE"
@@ -114,11 +141,15 @@ SAMBA_HOSTNAME=${samba_hostname}
NETBIOS_NAME=${netbios_name} NETBIOS_NAME=${netbios_name}
EOF EOF
cp "$BOOTSTRAP_ENV_FILE" "$ENV_FILE"
chmod 600 "$ENV_FILE"
BOOTSTRAP_ENV_WRITTEN=1
printf "Building image...\n" printf "Building image...\n"
docker compose build samba docker compose build samba
printf "Provisioning service account %s...\n" "$SERVICE_ACCOUNT_NAME" printf "Provisioning service account %s...\n" "$SERVICE_ACCOUNT_NAME"
docker compose --env-file "$BOOTSTRAP_ENV_FILE" run --rm --entrypoint /bin/bash samba -lc ' docker compose run --rm --entrypoint /bin/bash samba -lc '
set -euo pipefail set -euo pipefail
cat > /tmp/bootstrap-smb.conf <<EOF cat > /tmp/bootstrap-smb.conf <<EOF
@@ -158,6 +189,7 @@ NETBIOS_NAME=${netbios_name}
EOF EOF
chmod 600 "$ENV_FILE" chmod 600 "$ENV_FILE"
FINAL_ENV_WRITTEN=1
printf "Created %s\n" "$ENV_FILE" printf "Created %s\n" "$ENV_FILE"
} }