apt-ostree/debian/apt-ostree.postinst
robojerk 3dec23f8f7 Fix YAML linting issues and update system requirements to Debian 13+
- 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
2025-08-18 11:39:58 -07:00

137 lines
3.4 KiB
Bash
Executable file

#!/bin/sh
set -e
# Source debconf library
. /usr/share/debconf/confmodule
# Define package name
PACKAGE="apt-ostree"
# Function to log messages
log() {
echo "$PACKAGE: $1" >&2
}
# Function to setup shell completions
setup_completions() {
log "Setting up shell completions..."
# Reload bash completion if available (skip if problematic)
# if [ -f /etc/bash_completion ]; then
# . /etc/bash_completion || true
# fi
# Reload zsh completion if available
if [ -d /usr/share/zsh/vendor-completions ]; then
# Zsh will automatically pick up completions from this directory
log "Zsh completions installed"
fi
}
# Function to check if systemd is available
check_systemd() {
if ! command -v systemctl >/dev/null 2>&1; then
log "Warning: systemd not available, skipping service setup"
return 1
fi
return 0
}
# Function to enable and start the service
setup_service() {
if ! check_systemd; then
return 0
fi
log "Setting up apt-ostreed service..."
# Reload systemd daemon
systemctl daemon-reload
# Enable the service
if systemctl enable apt-ostreed.service; then
log "apt-ostreed service enabled"
else
log "Warning: Failed to enable apt-ostreed service"
fi
# Start the service if not running
if ! systemctl is-active --quiet apt-ostreed.service; then
if systemctl start apt-ostreed.service; then
log "apt-ostreed service started"
else
log "Warning: Failed to start apt-ostreed service"
fi
else
log "apt-ostreed service already running"
fi
}
# Function to setup directories and permissions
setup_directories() {
log "Setting up directories and permissions..."
# Create necessary directories with proper permissions
mkdir -p /var/log/apt-ostreed
mkdir -p /var/cache/apt-ostree
mkdir -p /var/lib/apt-ostree
mkdir -p /var/lib/apt-ostree/repo
# Set proper ownership (root:root)
chown root:root /var/log/apt-ostreed
chown root:root /var/cache/apt-ostree
chown root:root /var/lib/apt-ostree
chown root:root /var/lib/apt-ostree/repo
# Set proper permissions
chmod 755 /var/log/apt-ostreed
chmod 755 /var/cache/apt-ostree
chmod 755 /var/lib/apt-ostree
chmod 755 /var/lib/apt-ostree/repo
}
# Function to reload polkit rules
reload_polkit() {
if command -v pkaction >/dev/null 2>&1; then
log "Reloading polkit rules..."
# This will trigger polkit to reload its rules
pkaction --version >/dev/null 2>&1 || true
fi
}
# Function to check dependencies
check_dependencies() {
log "Checking dependencies..."
# Check if ostree is available
if ! command -v ostree >/dev/null 2>&1; then
log "Warning: ostree command not found. Please install ostree package."
fi
# Check if systemd is available
if ! command -v systemctl >/dev/null 2>&1; then
log "Warning: systemd not available. Some features may not work."
fi
}
# Main execution
case "$1" in
configure)
log "Configuring apt-ostree package..."
setup_completions
setup_directories
setup_service
reload_polkit
check_dependencies
log "Configuration completed successfully"
;;
abort-upgrade|abort-remove|abort-deconfigure)
# Do nothing on abort
;;
*)
log "Unknown action: $1"
exit 1
;;
esac
exit 0