clipmenu-spmenu/clipctl
Chris Down 333ebc513d clipctl: Fix tests
We now use clipctl in tests and must account for using the local
version.
2021-01-29 01:22:21 +00:00

53 lines
1.2 KiB
Bash
Executable file

#!/usr/bin/env bash
: "${CM_DIR:="${XDG_RUNTIME_DIR-"${TMPDIR-/tmp}"}"}"
if [[ -z $1 ]] || [[ $1 == --help ]] || [[ $1 == -h ]]; then
cat << 'EOF'
clipctl provides controls for the clipmenud daemon.
Commands:
enable: enable clip collection
disable: disable clip collection
status: returns "enabled" or "disabled"
toggle: toggles clip collection
version: returns major version
cache-dir: returns the directory used for caching
EOF
exit 0
fi
clipmenud_pid=$(pgrep -u "$(id -u)" -nf 'clipmenud$')
case $1 in
enable|disable|toggle|status)
if [[ -z "$clipmenud_pid" ]]; then
echo "clipmenud is not running" >&2
exit 2
fi
;;
esac
major_version=6
cache_dir=$CM_DIR/clipmenu.$major_version.$USER
status_file=$cache_dir/status
case $1 in
enable) kill -USR2 "$clipmenud_pid" ;;
disable) kill -USR1 "$clipmenud_pid" ;;
status) cat "$status_file" ;;
toggle)
if [[ $(clipctl status) == "enabled" ]]; then
clipctl disable
else
clipctl enable
fi
;;
version) echo "$major_version" ;;
cache-dir) echo "$cache_dir" ;;
*)
printf 'Unknown command: %s\n' "$1" >&2
exit 1
;;
esac