# Vaultnord sitt hvelv-image: offisiell Vaultwarden med vårt preg lagt inn.
#
# Ingen kildekode er endret. Vi legger til statiske filer i den ferdigbygde
# web-klienten og setter inn to linjer i index.html. Oppgradering er å bytte
# VW_VERSION og bygge på nytt - det tar sekunder, og web-klienten bygges ikke.
#
# Endringene er publisert i git.skui.io/vaultnord.no/vaultnord-brand, som AGPL
# krever når man distribuerer en endret versjon.

ARG VW_VERSION=alpine
FROM vaultwarden/server:${VW_VERSION}

# Ressursene ligger i brand/ i det offentlige repoet og i
# brand-proxy/static/ i arbeidsrepoet. Byggekonteksten avgjør hvilken.
ARG BRAND_DIR=brand-proxy/static
COPY ${BRAND_DIR}/ /web-vault/_vaultnord/

RUN set -eux; \
    cp /web-vault/_vaultnord/favicon.png        /web-vault/images/favicon-32x32.png; \
    cp /web-vault/_vaultnord/favicon-16.png     /web-vault/images/favicon-16x16.png; \
    cp /web-vault/_vaultnord/apple-touch-icon.png /web-vault/images/apple-touch-icon.png; \
    sed -i 's#</head>#<link rel="stylesheet" href="/_vaultnord/brand.css"><link rel="icon" href="/_vaultnord/favicon.png"></head>#' /web-vault/index.html; \
    sed -i 's#</body>#<div id="vaultnord-footer">Driftet av <a href="https://vaultnord.no">Vaultnord</a> \&middot; <a href="/_vaultnord/kilde.html">kildekode og lisens</a></div></body>#' /web-vault/index.html; \
    grep -q '_vaultnord/brand.css' /web-vault/index.html; \
    \
    # Brandingen henger på navn i web-klienten. Finnes de ikke lenger, har
    # oppstrøms endret noe, og pynten ville blitt stille borte. Da skal bygget
    # stoppe her i stedet - se lista øverst i brand.css.
    for marker in new-logo-themed bit-nav-logo bit-landing-footer \
                  --color-brand-600 --color-illustration-bg-primary tw-min-h-screen; do \
        grep -rqs -- "$marker" /web-vault/ \
            || { echo "FANT IKKE '$marker' i web-klienten - brandingen må oppdateres" >&2; exit 1; }; \
    done
