Some checks failed
Comprehensive CI/CD Pipeline / Build and Test (push) Failing after 4m45s
Comprehensive CI/CD Pipeline / Security Audit (push) Failing after 7s
Comprehensive CI/CD Pipeline / Package Validation (push) Successful in 2m21s
Comprehensive CI/CD Pipeline / Status Report (push) Has been skipped
- Fix trailing spaces and blank lines in Forgejo workflows - Update system requirements from Ubuntu Jammy/Bookworm to Debian 13+ (Trixie) - Update test treefile to use Debian Trixie instead of Ubuntu Jammy - Update documentation to reflect modern system requirements - Fix yamllint errors for CI/CD functionality - Ensure compatibility with modern OSTree and libapt versions
103 lines
3.6 KiB
Bash
Executable file
103 lines
3.6 KiB
Bash
Executable file
#!/bin/sh
|
|
# prerm script for apt-ostree
|
|
#
|
|
# This script is executed before the package is removed.
|
|
# It handles pre-removal tasks such as stopping services,
|
|
# backing up configuration files, and checking dependencies.
|
|
|
|
set -e
|
|
|
|
# Package name
|
|
PACKAGE="apt-ostree"
|
|
|
|
# Configuration directories
|
|
CONFIG_DIR="/etc/apt-ostree"
|
|
DAEMON_CONFIG_DIR="/etc/apt-ostreed"
|
|
DATA_DIR="/var/lib/apt-ostree"
|
|
LOG_DIR="/var/log/apt-ostree"
|
|
|
|
case "$1" in
|
|
remove|purge)
|
|
echo "Removing $PACKAGE..."
|
|
|
|
# Check if there are any active OSTree deployments
|
|
if command -v ostree >/dev/null 2>&1; then
|
|
if [ -d "/ostree" ]; then
|
|
echo "Checking for active OSTree deployments..."
|
|
|
|
# Check if there are any deployments
|
|
if ostree admin status 2>/dev/null | grep -q "deployments"; then
|
|
echo "Warning: Active OSTree deployments detected"
|
|
echo "Removing apt-ostree may affect system stability"
|
|
echo "Consider switching to a different deployment before removal"
|
|
|
|
# Ask for confirmation if interactive
|
|
if [ -t 0 ]; then
|
|
echo -n "Do you want to continue with removal? [y/N]: "
|
|
read -r response
|
|
case "$response" in
|
|
[yY]|[yY][eE][sS])
|
|
echo "Continuing with removal..."
|
|
;;
|
|
*)
|
|
echo "Removal cancelled by user"
|
|
exit 1
|
|
;;
|
|
esac
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# Stop the apt-ostreed daemon service if running
|
|
if command -v systemctl >/dev/null 2>&1; then
|
|
if systemctl is-active --quiet apt-ostreed.service; then
|
|
echo "Stopping apt-ostreed service..."
|
|
systemctl stop apt-ostreed.service || true
|
|
fi
|
|
fi
|
|
|
|
# Stop any running apt-ostree processes
|
|
if pgrep -f "apt-ostree" >/dev/null 2>&1; then
|
|
echo "Stopping running apt-ostree processes..."
|
|
pkill -f "apt-ostree" || true
|
|
sleep 2
|
|
# Force kill if still running
|
|
pkill -9 -f "apt-ostree" || true
|
|
fi
|
|
|
|
# Backup configuration files if removing (not purging)
|
|
if [ "$1" = "remove" ]; then
|
|
echo "Backing up configuration files..."
|
|
if [ -d "$CONFIG_DIR" ]; then
|
|
mkdir -p "/tmp/apt-ostree-backup-$(date +%Y%m%d-%H%M%S)"
|
|
cp -r "$CONFIG_DIR" "/tmp/apt-ostree-backup-$(date +%Y%m%d-%H%M%S)/" || true
|
|
echo "Configuration backed up to /tmp/apt-ostree-backup-*"
|
|
fi
|
|
if [ -d "$DAEMON_CONFIG_DIR" ]; then
|
|
mkdir -p "/tmp/apt-ostree-backup-$(date +%Y%m%d-%H%M%S)"
|
|
cp -r "$DAEMON_CONFIG_DIR" "/tmp/apt-ostree-backup-$(date +%Y%m%d-%H%M%S)/" || true
|
|
echo "Daemon configuration backed up to /tmp/apt-ostree-backup-*"
|
|
fi
|
|
fi
|
|
|
|
echo "$PACKAGE pre-removal completed"
|
|
;;
|
|
|
|
upgrade)
|
|
echo "Upgrading $PACKAGE..."
|
|
# Nothing special needed for upgrades
|
|
;;
|
|
|
|
failed-upgrade|abort-install|abort-upgrade|abort-remove|abort-deconfigure)
|
|
echo "Aborting $PACKAGE operation..."
|
|
;;
|
|
|
|
*)
|
|
echo "prerm called with unknown argument \`$1'" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
# Exit successfully
|
|
exit 0
|