# déclaration unique des variables d'environnement
#bump for deply
FROM node:10-buster-slim as base
LABEL maintainer="quentinduchemin@tuta.io"

ARG ETHERPAD_VERSION_BUILD=1.8.0
ARG ETHERPAD_LANDING_PAGE_VERSION_BUILD=v0.1
ARG NODE_ENV_BUILD=production
ARG ETHERPAD_PLUGINS=\
  ep_align ep_author_hover ep_chatdate ep_colibris_full_width \
  ep_comments_page ep_countable ep_delete_empty_pads ep_font_color \
  ep_font_family ep_headings2 ep_markdown ep_pad_activity_nofication_in_title \
  ep_pads_stats ep_page_view ep_prompt_for_name ep_set_title_on_pad \
  ep_subscript_and_superscript ep_tables2 ep_user_font_size

ENV NODE_ENV=${NODE_ENV_BUILD}

FROM base as downloader
RUN apt-get update && \
    apt-get install -y \
      git \
      curl \
      gzip \
      libssl-dev \
      pkg-config \
      python \
      unzip && \
    mkdir -p /opt/etherpad-lite && \
    chown -R node /opt/etherpad-lite

USER node
WORKDIR /opt/etherpad-lite
RUN curl -SL https://github.com/ether/etherpad-lite/archive/${ETHERPAD_VERSION}.zip > etherpad.zip && \
    unzip etherpad && \
    rm -Rf etherpad.zip etherpad-lite-${ETHERPAD_VERSION}/.git && \
    mv etherpad-lite-${ETHERPAD_VERSION}/* . && \
    mkdir -p src/templates && \
    bin/installDeps.sh && \
    git clone https://framagit.org/DeBugs/picasoft-etherpad-landing-page.git src/templates/picasoft-etherpad-landing-page && \
    rm package-lock.json && \
    git --git-dir=src/templates/picasoft-etherpad-landing-page/.git checkout ${ETHERPAD_LANDING_PAGE_VERSION} && \
    cp src/templates/picasoft-etherpad-landing-page/index.html src/templates/index.html && \
    cp src/templates/picasoft-etherpad-landing-page/static/* src/static/ -r && \
    # Change default hard-coded pad title
    sed -i 's|Untitled Pad|Nouveau pad|g' node_modules/ep_set_title_on_pad/templates/title.ejs && \
    sed -i 's|Untitled Pad|Nouveau pad|g' node_modules/ep_set_title_on_pad/static/tests/frontend/specs/atest.js

RUN for PLUGIN_NAME in ${ETHERPAD_PLUGINS}; do npm install "${PLUGIN_NAME}"; done

# construction de l'image finale
FROM base

COPY entrypoint.sh /opt/etherpad-lite/entrypoint.sh
RUN apt-get update && \
    apt-get install -y default-mysql-client && \
    chmod +x /opt/etherpad-lite/entrypoint.sh && \
    mkdir -p /opt/etherpad-lite && \
    chown -R node /opt/etherpad-lite && \
    usermod -d /opt/etherpad-lite node && \
    rm -rf /var/lib/apt/lists/*

# import des fichiers téléchargés dans l'image downloader
COPY --from=downloader --chown=node /opt/etherpad-lite /opt/etherpad-lite/

USER node
EXPOSE 8080
ENTRYPOINT ["/opt/etherpad-lite/entrypoint.sh"]
CMD ["node", "/opt/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js"]