# based on https://github.com/scheme-containers/monorepo/blob/master/implementations/chicken/5/Dockerfile
FROM debian:trixie-slim AS build
RUN apt-get update && apt-get -y --no-install-recommends install \
      build-essential \
 && rm -rf /var/lib/apt/lists/*
WORKDIR /build
COPY checksum checksum
ADD https://code.call-cc.org/releases/5.4.0/chicken-5.4.0.tar.gz chicken.tar.gz
RUN sha256sum chicken.tar.gz && sha256sum -c checksum
RUN mkdir chicken && tar -C chicken --strip-components 1 -xf chicken.tar.gz
WORKDIR /build/chicken
RUN make
RUN make install

FROM debian:trixie-slim AS buildeggs
RUN apt-get update && apt-get -y --no-install-recommends install \
      gcc libc-dev libpq-dev \
 && rm -rf /var/lib/apt/lists/*
COPY --from=build /usr/local/ /usr/local/

COPY scss /var/scss
COPY html-widgets /var/html-widgets
WORKDIR /var/scss
RUN chicken-install
WORKDIR /var/html-widgets
RUN chicken-install
WORKDIR /var/

RUN chicken-install srfi-1 srfi-13 srfi-18 srfi-19 srfi-158 srfi-194 \
        sxml-transforms schematra \
        uri-common http-client medea intarweb \
        sql-null openssl postgresql crypto-tools

WORKDIR /var
RUN mkdir nassella
WORKDIR /var/nassella
COPY mocks.scm mocks.scm
COPY db.scm db.scm
COPY nassella.scm nassella.scm
COPY run.scm run.scm

RUN csc -O3 -o nassella-run run.scm
RUN chmod +x nassella-run

FROM debian:trixie-slim
RUN apt-get update && apt-get -y --no-install-recommends install \
 libpq-dev ca-certificates gettext-base openssh-client restic \
 && rm -rf /var/lib/apt/lists/*
COPY --from=buildeggs /usr/local/ /usr/local/

WORKDIR /var
COPY --from=buildeggs /var/nassella/nassella-run /var

COPY nassella-latest.tar nassella-latest.tar
COPY root-key root-key
COPY db-init.sql db-init.sql
COPY db-clean.sql db-clean.sql

# ENTRYPOINT ["ls"]
# CMD ["/usr/local/lib/chicken/11"]
ENTRYPOINT ["./nassella-run"]
CMD ["-:a50"]
