ARG GITEA_URL=https://git.familie-berner.de
ARG ORG=Open
ARG VERSION=v3.13.0

# 1. Abhängigkeiten installieren
# Wir nutzen postgresql16-server (Stable). Falls 18 verfügbar ist, hier anpassen.
PKG curl postgresql16-server ca_root_nss

# 2. Postgres aktivieren und initialisieren
SYSRC postgresql_enable=YES
SERVICE postgresql initdb
SERVICE postgresql start

# Kurz warten, bis die DB hochgefahren ist
CMD sleep 5

# DB User und Datenbank anlegen
CMD su - postgres -c "createuser -w -d woodpecker"
CMD su - postgres -c "createdb -O woodpecker woodpecker"
CMD su - postgres -c "psql -c \"ALTER USER woodpecker WITH PASSWORD 'woodpecker';\""

# 3. Woodpecker Binaries herunterladen
CMD mkdir -p /usr/local/bin
CMD curl -fL -o /usr/local/bin/woodpecker-server ${GITEA_URL}/api/packages/${ORG}/generic/woodpecker-freebsd/${VERSION}/woodpecker-server
CMD curl -fL -o /usr/local/bin/woodpecker-agent ${GITEA_URL}/api/packages/${ORG}/generic/woodpecker-freebsd/${VERSION}/woodpecker-agent
CMD curl -fL -o /usr/local/bin/woodpecker-cli ${GITEA_URL}/api/packages/${ORG}/generic/woodpecker-freebsd/${VERSION}/woodpecker-cli
CMD chmod +x /usr/local/bin/woodpecker-server /usr/local/bin/woodpecker-agent /usr/local/bin/woodpecker-cli

# 4. Konfiguration und RC-Skripte kopieren
# Bastille kopiert Dateien aus dem 'files/' Unterordner des Templates an die Zielposition
CMD mkdir -p /usr/local/etc/woodpecker

# Kopiere RC-Skripte (Quelle: files/usr/local/etc/rc.d/...)
CP usr/local/etc/rc.d/woodpecker-server /usr/local/etc/rc.d/woodpecker-server
CP usr/local/etc/rc.d/woodpecker-agent /usr/local/etc/rc.d/woodpecker-agent

# Kopiere Env-Files (Quelle: files/usr/local/etc/woodpecker/...)
CP usr/local/etc/woodpecker/server.env /usr/local/etc/woodpecker/server.env
CP usr/local/etc/woodpecker/agent.env /usr/local/etc/woodpecker/agent.env

CMD chmod +x /usr/local/etc/rc.d/woodpecker-server
CMD chmod +x /usr/local/etc/rc.d/woodpecker-agent

# 5. Dienste aktivieren
SYSRC woodpecker_server_enable=YES
SYSRC woodpecker_agent_enable=YES