#!/bin/bash
# Privileged helper for ubuntustudio-installer (called via pkexec).

case "$1" in
    update)
        apt-get update
        ;;
    install)
        shift
        apt-get install -y "$@"
        ;;
    autoremove)
        shift
        for pkg in "$@"; do
            apt-cache depends "$pkg" 2>/dev/null | grep ':' | cut -d: -f2- | \
                sed 's/^[[:space:]]*//' | while IFS= read -r dep; do
                    [ -n "$dep" ] && [ "$dep" != "386" ] && \
                        apt-mark auto "$dep" 2>/dev/null || true
                done
            apt-get autoremove "$pkg" -y
        done
        ;;
    fix)
        if [ -f /etc/security/limits.d/audio.conf.disabled ]; then
            mv /etc/security/limits.d/audio.conf.disabled \
               /etc/security/limits.d/audio.conf.old.disabled
        elif [ -f /etc/security/limits.d/audio.conf ]; then
            mv /etc/security/limits.d/audio.conf \
               /etc/security/limits.d/audio.conf.old.disabled
        fi
        if [ -f /etc/security/limits.d/30-ubuntustudio-audio.conf.disabled ]; then
            mv /etc/security/limits.d/30-ubuntustudio-audio.conf.disabled \
               /etc/security/limits.d/30-ubuntustudio-audio.conf
        elif ! [ -f /etc/security/limits.d/30-ubuntustudio-audio.conf ]; then
            cp /usr/share/ubuntustudio-installer/30-ubuntustudio-audio.conf \
               /etc/security/limits.d/
        fi
        if (( PKEXEC_UID > 999 )); then
            pexuid=$(id -nu "${PKEXEC_UID}")
            /usr/sbin/usermod -aG audio "${pexuid}"
        fi
        ;;
    *)
        echo "Usage: $0 {update|install|autoremove|fix}" >&2
        exit 1
        ;;
esac
