add pmgr
This commit is contained in:
parent
4ea4d0b8fa
commit
07b0c1f4ef
118
pmgr
Executable file
118
pmgr
Executable file
@ -0,0 +1,118 @@
|
||||
#!/bin/sh
|
||||
|
||||
# pmgr -- proxy manager
|
||||
|
||||
PMGR_VERSION=0.0.1
|
||||
PMGR_WORKDIR="${PMGR_WORKDIR:-"$HOME"/.config/pmgr}"
|
||||
PMGR_ENV_DIR="${PMGR_ENV_DIR:-"$PMGR_WORKDIR"/environment}"
|
||||
SYSTEMD_USER_UNITS="${SYSTEMD_USER_UNITS:-"$HOME"/.config/systemd/user}"
|
||||
|
||||
mkdir -p "$PMGR_WORKDIR"
|
||||
mkdir -p "$PMGR_ENV_DIR"
|
||||
|
||||
usage()
|
||||
{
|
||||
printf \
|
||||
'pmgr -- proxy manager
|
||||
|
||||
Usage: pmgr [options] [<arguments>]
|
||||
|
||||
Options:
|
||||
-l list proxies
|
||||
-e enable (start) proxy
|
||||
-d disable (stop) proxy
|
||||
-r restart proxy
|
||||
-s show proxy status
|
||||
-j view proxy logs
|
||||
-o print $PMGR_ENV_DIR
|
||||
-R run systemctl --user daemon-reload
|
||||
-a add to autostart
|
||||
-A remove from autostart
|
||||
-h print this help message and exit
|
||||
-v print version and exit
|
||||
' | sed 's/^ //g'
|
||||
}
|
||||
|
||||
list_proxies()
|
||||
{
|
||||
|
||||
{
|
||||
printf '\e[1mHOST PROTO FILE STATUS AUTOSTART\033[0m\n'
|
||||
for file in $(find "$PMGR_ENV_DIR" -type f); do
|
||||
unit="${file##*/}"
|
||||
if systemctl --user is-active "$unit" >/dev/null 2>&1; then
|
||||
active='\033[32mactive\033[0m'
|
||||
else
|
||||
active=inactive
|
||||
fi
|
||||
printf '%s %s %s %b %s\n' \
|
||||
"${unit#*@}" \
|
||||
"${unit%@*}" \
|
||||
"$(echo "$file" | sed "s%$HOME%~%")" \
|
||||
"$active" \
|
||||
"$(systemctl --user is-enabled "$unit")"
|
||||
done
|
||||
} | column -t
|
||||
}
|
||||
|
||||
[ $# -eq 0 ] && { usage; exit 0; }
|
||||
|
||||
while getopts le:d:r:s:j:oRa:A:hv opt; do
|
||||
case "$opt" in
|
||||
l)
|
||||
list_proxies
|
||||
exit "$?"
|
||||
;;
|
||||
e)
|
||||
for unit in $(find "$PMGR_ENV_DIR" -type f -printf '%f\n'); do
|
||||
if systemctl --user is-active "$unit" >/dev/null 2>&1; then
|
||||
systemctl --user stop "$unit"
|
||||
fi
|
||||
done
|
||||
systemctl --user start "$OPTARG"
|
||||
exit "$?"
|
||||
;;
|
||||
d)
|
||||
systemctl --user stop "$OPTARG"
|
||||
exit "$?"
|
||||
;;
|
||||
r)
|
||||
systemctl --user restart "$OPTARG"
|
||||
exit "$?"
|
||||
;;
|
||||
s)
|
||||
systemctl --user status "$OPTARG"
|
||||
exit "$?"
|
||||
;;
|
||||
j)
|
||||
journalctl --user --unit "$OPTARG"
|
||||
exit "$?"
|
||||
;;
|
||||
o)
|
||||
echo "$PMGR_ENV_DIR"
|
||||
exit 0
|
||||
;;
|
||||
R)
|
||||
systemctl --user daemon-reload
|
||||
exit "$?"
|
||||
;;
|
||||
a)
|
||||
systemctl --user enable "$OPTARG"
|
||||
exit "$?"
|
||||
;;
|
||||
A)
|
||||
systemctl --user disable "$OPTARG"
|
||||
exit "$?"
|
||||
;;
|
||||
h)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
v)
|
||||
printf 'v%s\n' "$PMGR_VERSION"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
:
|
||||
esac
|
||||
done
|
Loading…
Reference in New Issue
Block a user