FROM archlinux:latest

ARG SHAKA_PACKAGER_URL="https://github.com/shaka-project/shaka-packager/releases/download/v2.6.1/packager-linux-x64"
ARG UNSHACKLE_REPO_URL
ARG UNSHACKLE_APP_DIR="/opt/unshackle"

ENV LANG=C.UTF-8 \
    LC_ALL=C.UTF-8 \
    TS_STATE_DIR=/var/lib/tailscale \
    TS_SOCKET=/var/run/tailscale/tailscaled.sock \
    START_TAILSCALED=1 \
    DOCKER_HOST=unix:///tmp/docker.sock \
    UNSHACKLE_APP_DIR="${UNSHACKLE_APP_DIR}"

RUN pacman -Syu --noconfirm && \
    pacman -S --noconfirm --needed \
      aria2 \
      bash \
      ca-certificates \
      curl \
      docker \
      fish \
      fuse3 \
      git \
      iproute2 \
      iptables \
      less \
      procps-ng \
      python \
      rclone \
      tailscale \
      uv && \
    pacman -Scc --noconfirm

RUN mkdir -p /var/lib/tailscale /var/run/tailscale /workspace "${UNSHACKLE_APP_DIR}"

RUN curl -L "${SHAKA_PACKAGER_URL}" -o /tmp/packager-linux-x64 && \
    install -Dm755 /tmp/packager-linux-x64 /usr/local/bin/packager && \
    ln -sf /usr/local/bin/packager /usr/local/bin/shaka-packager && \
    rm -f /tmp/packager-linux-x64

RUN git clone "${UNSHACKLE_REPO_URL}" "${UNSHACKLE_APP_DIR}"

WORKDIR ${UNSHACKLE_APP_DIR}

RUN uv sync --frozen

COPY docker/entrypoint.sh /usr/local/bin/container-entrypoint.sh
COPY docker/fish/unshackle-venv.fish /etc/fish/conf.d/unshackle-venv.fish
COPY docker/fish/docker-host.fish /etc/fish/conf.d/docker-host.fish
RUN chmod +x /usr/local/bin/container-entrypoint.sh

ENV PATH="${UNSHACKLE_APP_DIR}/.venv/bin:${PATH}"

ENTRYPOINT ["/usr/local/bin/container-entrypoint.sh"]
CMD ["fish"]
