From 9dffd55c2b720bb1ee71a0bd9bfddfb20f1fbd7c Mon Sep 17 00:00:00 2001 From: GadflyFang Date: Mon, 3 Mar 2025 10:39:57 +0800 Subject: [PATCH] build: Add pre-install and pre-removal scripts for DEBIAN package (#1041) kill sourcegit before install --- SourceGit.sln | 2 ++ build/resources/deb/DEBIAN/preinst | 32 ++++++++++++++++++++++++++ build/resources/deb/DEBIAN/prerm | 36 ++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100755 build/resources/deb/DEBIAN/preinst create mode 100755 build/resources/deb/DEBIAN/prerm diff --git a/SourceGit.sln b/SourceGit.sln index cf761abd..624322f8 100644 --- a/SourceGit.sln +++ b/SourceGit.sln @@ -60,6 +60,8 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DEBIAN", "DEBIAN", "{F101849D-BDB7-40D4-A516-751150C3CCFC}" ProjectSection(SolutionItems) = preProject build\resources\deb\DEBIAN\control = build\resources\deb\DEBIAN\control + build\resources\deb\DEBIAN\preinst = build\resources\deb\DEBIAN\preinst + build\resources\deb\DEBIAN\prerm = build\resources\deb\DEBIAN\prerm EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "rpm", "rpm", "{9BA0B044-0CC9-46F8-B551-204F149BF45D}" diff --git a/build/resources/deb/DEBIAN/preinst b/build/resources/deb/DEBIAN/preinst new file mode 100755 index 00000000..edcf9088 --- /dev/null +++ b/build/resources/deb/DEBIAN/preinst @@ -0,0 +1,32 @@ +#!/bin/sh + +set -e + +# summary of how this script can be called: +# * `install' +# * `install' +# * `upgrade' +# * `abort-upgrade' +# for details, see http://www.debian.org/doc/debian-policy/ + +case "$1" in + install|upgrade) + # Check if SourceGit is running and stop it + if pidof -q sourcegit || pgrep -f sourcegit > /dev/null; then + echo "SourceGit is running, stopping it..." + killall sourcegit 2>/dev/null || pkill -f sourcegit 2>/dev/null || true + # Wait for SourceGit to exit + sleep 1 + fi + ;; + + abort-upgrade) + ;; + + *) + echo "preinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/build/resources/deb/DEBIAN/prerm b/build/resources/deb/DEBIAN/prerm new file mode 100755 index 00000000..8ecd4b8d --- /dev/null +++ b/build/resources/deb/DEBIAN/prerm @@ -0,0 +1,36 @@ +#!/bin/sh + +set -e + +# summary of how this script can be called: +# * `remove' +# * `upgrade' +# * `failed-upgrade' +# * `remove' `in-favour' +# * `deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + +case "$1" in + remove|upgrade|deconfigure) + # Check if SourceGit is running and stop it + if pidof -q sourcegit || pgrep -f sourcegit > /dev/null; then + echo "SourceGit is running, stopping it before removal..." + killall sourcegit 2>/dev/null || pkill -f sourcegit 2>/dev/null || true + # Wait for SourceGit to exit + sleep 1 + fi + ;; + + failed-upgrade) + ;; + + *) + echo "prerm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +exit 0