summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Souza2024-02-05 16:15:40 -0300
committerDaniel Souza2024-02-05 16:15:40 -0300
commit9f2d5bfd6d53bace5455adeedd25fdd0805de16d (patch)
treef18c6ad11a4b2d9904d335b0018ef573fea3401b
downloadaur-9f2d5bfd6d53bace5455adeedd25fdd0805de16d.tar.gz
Initial commit
-rw-r--r--PKGBUILD36
-rwxr-xr-xsteam-killer.install70
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"
+}