#! /usr/bin/env bash set -e GENIE_VERSION="1.23" # update if you need GENIE_FILE="systemd-genie_${GENIE_VERSION}_amd64" GENIE_FILE_PATH="/tmp/${GENIE_FILE}.deb" GENIE_DIR_PATH="/tmp/${GENIE_FILE}" function installDebPackage() { # install repackaged systemd-genie sudo dpkg -i "${GENIE_FILE_PATH}" rm -rf "${GENIE_FILE_PATH}" } function fixDebDependencies() { # repackage systemd-genie to require dotnet 3.1 instead of 3.0 rm -rf "${GENIE_DIR_PATH}" mkdir -p "${GENIE_DIR_PATH}" dpkg-deb -x "${GENIE_FILE_PATH}" "${GENIE_DIR_PATH}" pushd "${GENIE_DIR_PATH}" dpkg-deb -e "${GENIE_FILE_PATH}" popd sed -i 's/dotnet-runtime-3[.]0/dotnet-runtime-3.1/g' "${GENIE_DIR_PATH}/DEBIAN/control" rm -f "${GENIE_FILE_PATH}" pushd /tmp dpkg-deb -b "${GENIE_DIR_PATH}" popd rm -rf "${GENIE_DIR_PATH}" } function downloadDebPackage() { rm -f "${GENIE_FILE_PATH}" pushd /tmp wget --content-disposition \ "https://packagecloud.io/arkane-systems/wsl-translinux/packages/debian/bookworm/${GENIE_FILE}.deb/download.deb" popd } function installDependencies() { # install systemd-genie dependencies sudo apt-get update wget --content-disposition \ "https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb" sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb sudo apt-get install apt-transport-https sudo apt-get update sudo apt-get install -y \ daemonize \ dotnet-runtime-3.1 sudo rm -f /usr/sbin/daemonize sudo ln -s /usr/bin/daemonize /usr/sbin/daemonize } function main() { installDependencies downloadDebPackage fixDebDependencies installDebPackage } main