mirror of https://github.com/curusarn/resh
parent
30b254cf30
commit
494f36cd1c
@ -1,31 +1,34 @@ |
|||||||
#!/usr/bin/env sh |
#!/usr/bin/env sh |
||||||
|
set -eu |
||||||
|
|
||||||
failed_to_kill() { |
q=0 |
||||||
[ "${1-}" != "-q" ] && echo "Failed to kill the RESH daemon - it probably isn't running" |
[ "${1-}" != "-q" ] || q=1 |
||||||
} |
|
||||||
|
|
||||||
xdg_pid() { |
xdg_pid() { |
||||||
local path="${XDG_DATA_HOME-}"/resh/daemon.pid |
local path="${XDG_DATA_HOME-}"/resh/daemon.pid |
||||||
[ -n "${XDG_DATA_HOME-}" ] && [ -f "$path" ] || return 1 |
[ -n "${XDG_DATA_HOME-}" ] && [ -f "$path" ] || return 1 |
||||||
cat "$path" |
cat "$path" |
||||||
|
rm "$path" |
||||||
} |
} |
||||||
default_pid() { |
default_pid() { |
||||||
local path=~/.local/share/resh/daemon.pid |
local path=~/.local/share/resh/daemon.pid |
||||||
[ -f "$path" ] || return 1 |
[ -f "$path" ] || return 1 |
||||||
cat "$path" |
cat "$path" |
||||||
|
rm "$path" |
||||||
} |
} |
||||||
legacy_pid() { |
|
||||||
local path=~/.resh/resh.pid |
|
||||||
[ -f "$path" ] || return 1 |
|
||||||
cat "$path" |
|
||||||
} |
|
||||||
pid=$(xdg_pid || default_pid || legacy_pid) |
|
||||||
|
|
||||||
if [ -n "$pid" ]; then |
kill_by_pid() { |
||||||
[ "${1-}" != "-q" ] && printf "Stopping RESH daemon ... (PID: %s)\n" "$pid" |
[ -n "$1" ] || return 1 |
||||||
kill "$pid" || failed_to_kill |
[ "$q" = "1" ] || printf "Stopping RESH daemon ... (PID: %s)\n" "$1" |
||||||
else |
kill "$1" |
||||||
[ "${1-}" != "-q" ] && printf "Stopping RESH daemon ...\n" |
} |
||||||
killall -q resh-daemon || failed_to_kill |
kill_by_name() { |
||||||
fi |
[ "$q" = "1" ] || printf "Stopping RESH daemon ...\n" |
||||||
|
killall -q resh-daemon |
||||||
|
} |
||||||
|
failed_to_kill() { |
||||||
|
[ "$q" = "1" ] || echo "Failed to kill the RESH daemon - it probably isn't running" |
||||||
|
return 1 |
||||||
|
} |
||||||
|
|
||||||
|
kill_by_pid "$(xdg_pid)" || kill_by_pid "$(default_pid)" || kill_by_name || failed_to_kill |
||||||
|
|||||||
Loading…
Reference in new issue