#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ROOT_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)" source "${SCRIPT_DIR}/package_common.sh" require_command dpkg-deb require_command python3 VERSION="$(project_version)" PACKAGE_NAME="$(project_name)" ARCH="${DEB_ARCH:-}" if [[ -z "${ARCH}" ]]; then if command -v dpkg >/dev/null 2>&1; then ARCH="$(dpkg --print-architecture)" else ARCH="amd64" fi fi build_wheel WHEEL_PATH="$(latest_wheel_path)" RUNTIME_REQUIREMENTS="${BUILD_DIR}/deb/runtime-requirements.txt" write_runtime_requirements "${RUNTIME_REQUIREMENTS}" STAGE_DIR="${BUILD_DIR}/deb/${PACKAGE_NAME}_${VERSION}_${ARCH}" PACKAGE_BASENAME="${PACKAGE_NAME}_${VERSION}_${ARCH}" DEB_PATH="${DIST_DIR}/${PACKAGE_BASENAME}.deb" VENV_DIR="${STAGE_DIR}/opt/${PACKAGE_NAME}/venv" PIP_ARGS=() if [[ -n "${AMAN_WHEELHOUSE_DIR:-}" ]]; then PIP_ARGS+=(--no-index --find-links "${AMAN_WHEELHOUSE_DIR}") fi rm -rf "${STAGE_DIR}" mkdir -p "${STAGE_DIR}/DEBIAN" mkdir -p "${STAGE_DIR}/usr/bin" mkdir -p "${STAGE_DIR}/usr/lib/systemd/user" mkdir -p "${STAGE_DIR}/opt/${PACKAGE_NAME}" render_template \ "${ROOT_DIR}/packaging/deb/control.in" \ "${STAGE_DIR}/DEBIAN/control" \ "PACKAGE_NAME=${PACKAGE_NAME}" \ "VERSION=${VERSION}" \ "ARCH=${ARCH}" cp "${ROOT_DIR}/packaging/deb/postinst" "${STAGE_DIR}/DEBIAN/postinst" chmod 0755 "${STAGE_DIR}/DEBIAN/postinst" python3 -m venv --system-site-packages "${VENV_DIR}" "${VENV_DIR}/bin/python" -m pip install "${PIP_ARGS[@]}" --requirement "${RUNTIME_REQUIREMENTS}" "${VENV_DIR}/bin/python" -m pip install "${PIP_ARGS[@]}" --no-deps "${WHEEL_PATH}" cat >"${STAGE_DIR}/usr/bin/${PACKAGE_NAME}" <