# docker-finance | modern accounting for the power-user
#
# Copyright (C) 2021-2026 Aaron Fiore (Founder, Evergreen Crypto LLC)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.

#
# Base dependencies
#

# https://hub.docker.com/evergreencrypto/hledger-suite
FROM evergreencrypto/hledger-suite:latest AS hledger-suite

# https://hub.docker.com/_/archlinux
FROM archlinux:base-devel

COPY --from=hledger-suite /usr/local/bin/hledger /usr/local/bin/hledger
COPY --from=hledger-suite /usr/local/bin/hledger-ui /usr/local/bin/hledger-ui
COPY --from=hledger-suite /usr/local/bin/hledger-web /usr/local/bin/hledger-web
COPY --from=hledger-suite /usr/local/bin/hledger-iadd /usr/local/bin/hledger-iadd
COPY --from=hledger-suite /usr/local/bin/hledger-flow /usr/local/bin/hledger-flow

RUN pacman -Syu --noconfirm --disable-download-timeout

# Apply man page support, as it's unsupported in upstream image (by default)
# NOTE: must be applied here before installing any other packages (that have man pages)
RUN sed -i '/NoExtract  = usr\/share\/man\/\* usr\/share\/info\/\*/d' /etc/pacman.conf

# System packages
# NOTE: although these are already default-installed in the upstream image,
# they're re-installed here in order to capture their respective man pages.
RUN pacman -Syu \
  bash \
  coreutils \
  gawk \
  sed \
  --noconfirm --disable-download-timeout

# Base packages
RUN pacman -Syu \
  bc \
  csvkit \
  vim \
  xan \
  yq \
  --noconfirm --disable-download-timeout

#
# Related "useful" packages (not dependencies)
#

RUN pacman -Syu \
  calc \
  less \
  man-db \
  --noconfirm --disable-download-timeout

#
# Entrypoint
#

USER root
COPY ./entrypoint.bash /entrypoint.bash
RUN chmod a+rx /entrypoint.bash
ENTRYPOINT ["/entrypoint.bash"]

# vim: sw=2 sts=2 si ai et
