#!/bin/sh set -eu IMAGE="${CODIT_DEB_IMAGE:-debian:stable}" ##PLATFORM="linux/386" ROOT_DIR="$(CDPATH= cd -- "$(dirname -- "$0")/../.." && pwd)" PKG_DIR="${ROOT_DIR}/packaging" WORK_DIR="${PKG_DIR}/tmp/deb-work" OUT_DIR="${PKG_DIR}/DEB" REPOKIT_DIR="${CODIT_REPOKIT_DIR:-${ROOT_DIR}/../repokit}" REPOKIT_URL="${CODIT_REPOKIT_URL:-https://code.miflux.com/hyung-hwan/repokit}" printf '%s\n' "Building frontend natively..." cd "${ROOT_DIR}/frontend" npm ci npm run build rm -rf "${WORK_DIR}" mkdir -p "${WORK_DIR}" "${OUT_DIR}" printf '%s\n' "Preparing Codit source tree for Debian package build..." rsync -a --delete \ --exclude .git \ --exclude frontend/node_modules \ --exclude backend/codit-data \ --exclude backend/codit-data.bak \ --exclude backend/codit-server \ --exclude backend/codit-server.debug \ --exclude backend/codit-data-browser \ --exclude packaging/RPM \ --exclude packaging/DEB \ --exclude packaging/tmp \ "${ROOT_DIR}/" "${WORK_DIR}/codit/" if [ -d "${REPOKIT_DIR}/.git" ] || [ -f "${REPOKIT_DIR}/go.mod" ]; then printf '%s\n' "Copying repokit from ${REPOKIT_DIR}..." rsync -a --delete --exclude .git "${REPOKIT_DIR}/" "${WORK_DIR}/repokit/" else printf '%s\n' "Cloning repokit from ${REPOKIT_URL}..." git clone "${REPOKIT_URL}" "${WORK_DIR}/repokit" rm -rf "${WORK_DIR}/repokit/.git" fi cp -a "${WORK_DIR}/codit/packaging/debian" "${WORK_DIR}/codit/debian" docker run --rm \ -v "${WORK_DIR}:/work" \ -v "${OUT_DIR}:/out" \ "${IMAGE}" \ /bin/sh -ec ' mkdir -p /work apt-get update DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends build-essential debhelper devscripts golang-go ca-certificates dpkg-buildpackage -us -uc -b mkdir -p /out cp -a /work/*.deb /work/*.buildinfo /work/*.changes /out/ 2>/dev/null || true '