diff options
author | Daniel Souza | 2024-02-05 16:15:40 -0300 |
---|---|---|
committer | Daniel Souza | 2024-02-05 16:15:40 -0300 |
commit | 9f2d5bfd6d53bace5455adeedd25fdd0805de16d (patch) | |
tree | f18c6ad11a4b2d9904d335b0018ef573fea3401b | |
download | aur-9f2d5bfd6d53bace5455adeedd25fdd0805de16d.tar.gz |
Initial commit
-rw-r--r-- | PKGBUILD | 36 | ||||
-rwxr-xr-x | steam-killer.install | 70 |
2 files changed, 106 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..236959bbe9d7 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,36 @@ +# Maintainer: Daniel de Souza <aur at posix dot dev dot br> +_pkgname="steam-killer" +_gitauthor="danisztls" +_gitbranch="main" + +pkgname="${_pkgname}-git" +pkgver=latest +pkgrel=1 +pkgdesc="Terminates Steam on Linux when certain conditions are met." +arch=('any') +url="https://github.com/danisztls/steam-killer" +license=('GPLv3') +depends=('python' 'python-psutil' 'python-watchdog') +makedepends=('git') +provides=("${_pkgname}") +conflicts=("${_pkgname}") +install="steam-killer.install" +source=("git+https://github.com/danisztls/steam-killer") +sha512sums=('SKIP') + +pkgver() { + cd "$srcdir/$_pkgname" + # Use tags but fallback to revision + ( set -o pipefail + git describe --tags --long --abbrev=7 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g' || + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short=7 HEAD)" + ) +} + +package() { + cd "$srcdir/$_pkgname" + install -Dm 755 "steam_killer/__init__.py" "${pkgdir}/usr/bin/${_pkgname}" + install -vDm 644 "steam_killer/steam-killer.service" "${pkgdir}/usr/lib/systemd/user/${_pkgname}.service" + install -vDm 644 "LICENSE" "${pkgdir}/usr/share/licenses/${_pkgname}/LICENSE" + install -vDm 644 "README.md" -t "${pkgdir}/usr/share/doc/${_pkgname}" +} diff --git a/steam-killer.install b/steam-killer.install new file mode 100755 index 000000000000..3e87a4a93d1f --- /dev/null +++ b/steam-killer.install @@ -0,0 +1,70 @@ +#!/bin/bash +# based on https://github.com/archlinux/svntogit-community/tree/packages/profile-sync-daemon/trunk +# shellcheck disable=SC2016 # don't wish them to expand + +basename=steam-killer + +# users=($(loginctl --no-legend list-users | awk '{ print $2 }' | sed ':a;N;$!ba')) +mapfile -t users < <(loginctl --no-legend list-users | awk '{ print $2 }' | sed ':a;N;$!ba') + +# pre_install() { +# } + +post_install() { + _daemon_refresh + _enable_service + _start_service +} + +pre_upgrade() { + # stop system service now since it will be removed upon updating + if systemctl is-active "${basename}.service" &>/dev/null; then + systemctl stop "${basename}.service" &>/dev/null + fi +} + +post_upgrade() { + _daemon_refresh +} + +pre_remove() { + for user in "${users[@]}"; do + if _daemon_user_check "$user"; then + _daemon_user_stop "$user" + fi + done +} + +# post_remove() { +# } + +_daemon_refresh() { + for user in "${users[@]}"; do + su "$user" -s /bin/sh -c 'XDG_RUNTIME_DIR=/run/user/$UID systemctl --user daemon-reload' + done +} + +_enable_service() { + for user in "${users[@]}"; do + su "$user" -s /bin/sh -c 'XDG_RUNTIME_DIR=/run/user/$UID systemctl --user enable steam-killer.service' + done +} + +_start_service() { + for user in "${users[@]}"; do + su "$user" -s /bin/sh -c 'XDG_RUNTIME_DIR=/run/user/$UID systemctl --user start steam-killer.service' + done +} + +_daemon_user_check() { + running="$(su "$1" -s /bin/sh -c "XDG_RUNTIME_DIR=/run/user/'$UID' systemctl --user is-active $basename")" + if [[ "$running" = "active" ]]; then + return 0 + else + return 1 + fi +} + +_daemon_user_stop() { + su "$1" -s /bin/sh -c "XDG_RUNTIME_DIR=/run/user/'$UID' systemctl --user stop $basename.service" +} |