summaryrefslogtreecommitdiff
path: root/plugins/systemd
diff options
context:
space:
mode:
authorscrouthtv <lennivh24@gmail.com>2021-12-29 10:31:29 +0100
committerGitHub <noreply@github.com>2021-12-29 10:31:29 +0100
commit5b2f99bcb7186bfb11b91a8686d750af95e41eff (patch)
treebf28139ece41878d41a02beccff515039ea7418e /plugins/systemd
parentcffa9a2fda28e9b2913776c3db588f4f28412864 (diff)
downloadzsh-5b2f99bcb7186bfb11b91a8686d750af95e41eff.tar.gz
zsh-5b2f99bcb7186bfb11b91a8686d750af95e41eff.tar.bz2
zsh-5b2f99bcb7186bfb11b91a8686d750af95e41eff.zip
fix(systemd): remove `sudo` from power-related aliases (#9441)
Diffstat (limited to 'plugins/systemd')
-rw-r--r--plugins/systemd/README.md13
-rw-r--r--plugins/systemd/systemd.plugin.zsh62
2 files changed, 52 insertions, 23 deletions
diff --git a/plugins/systemd/README.md b/plugins/systemd/README.md
index 3fa1d2118..ffa0567a8 100644
--- a/plugins/systemd/README.md
+++ b/plugins/systemd/README.md
@@ -3,7 +3,8 @@
The systemd plugin provides many useful aliases for systemd.
To use it, add systemd to the plugins array of your zshrc file:
-```
+
+```zsh
plugins=(... systemd)
```
@@ -22,7 +23,7 @@ plugins=(... systemd)
| `sc-show-environment` | `systemctl show-environment` | Dump the systemd manager environment block |
| `sc-cat` | `systemctl cat` | Show backing files of one or more units |
| `sc-list-timers` | `systemctl list-timers` | List timer units currently in memory |
-| **Aliases with sudo** |
+| **Aliases with sudo** |||
| `sc-start` | `sudo systemctl start` | Start Unit(s) |
| `sc-stop` | `sudo systemctl stop` | Stop Unit(s) |
| `sc-reload` | `sudo systemctl reload` | Reload Unit(s) |
@@ -59,9 +60,11 @@ to your prompt, drop `$(systemd_prompt_info [unit]...)` into your prompt (more t
may be specified).
The plugin will add the following to your prompt for each `$unit`.
-```
+
+```text
<prefix><unit>:<active|notactive><suffix>
```
+
You can control these parts with the following variables:
- `<prefix>`: Set `$ZSH_THEME_SYSTEMD_PROMPT_PREFIX`.
@@ -79,7 +82,7 @@ You can control these parts with the following variables:
For example, if your prompt contains `PROMPT='$(systemd_prompt_info dhcpd httpd)'` and you set the following variables:
-```
+```sh
ZSH_THEME_SYSTEMD_PROMPT_PREFIX="["
ZSH_THEME_SYSTEMD_PROMPT_SUFFIX="]"
ZSH_THEME_SYSTEMD_PROMPT_ACTIVE="+"
@@ -89,6 +92,6 @@ ZSH_THEME_SYSTEMD_PROMPT_CAPS=1
If `dhcpd` is running, and `httpd` is not, then your prompt will look like this:
-```
+```text
[DHCPD: +][HTTPD: X]
```
diff --git a/plugins/systemd/systemd.plugin.zsh b/plugins/systemd/systemd.plugin.zsh
index c6fd52990..e9ac64382 100644
--- a/plugins/systemd/systemd.plugin.zsh
+++ b/plugins/systemd/systemd.plugin.zsh
@@ -1,3 +1,4 @@
+# systemctl aliases
user_commands=(
cat
get-default
@@ -14,7 +15,8 @@ user_commands=(
list-units
show
show-environment
- status)
+ status
+)
sudo_commands=(
add-requires
@@ -28,8 +30,6 @@ sudo_commands=(
emergency
enable
halt
- hibernate
- hybrid-sleep
import-environment
isolate
kexec
@@ -38,34 +38,53 @@ sudo_commands=(
list-machines
load
mask
- poweroff
preset
preset-all
- reboot
reenable
reload
reload-or-restart
reset-failed
rescue
- restart
revert
set-default
set-environment
set-property
start
stop
- suspend
switch-root
try-reload-or-restart
try-restart
unmask
- unset-environment)
+ unset-environment
+)
+
+power_commands=(
+ hibernate
+ hybrid-sleep
+ poweroff
+ reboot
+ restart
+ suspend
+)
+
+for c in $user_commands; do
+ alias "sc-$c"="systemctl $c"
+ alias "scu-$c"="systemctl --user $c"
+done
+
+for c in $sudo_commands; do
+ alias "sc-$c"="sudo systemctl $c"
+ alias "scu-$c"="systemctl --user $c"
+done
-for c in $user_commands; do; alias sc-$c="systemctl $c"; done
-for c in $sudo_commands; do; alias sc-$c="sudo systemctl $c"; done
-for c in $user_commands; do; alias scu-$c="systemctl --user $c"; done
-for c in $sudo_commands; do; alias scu-$c="systemctl --user $c"; done
+for c in $power_commands; do
+ alias "sc-$c"="systemctl $c"
+done
+unset c user_commands sudo_commands power_commands
+
+
+# --now commands
alias sc-enable-now="sc-enable --now"
alias sc-disable-now="sc-disable --now"
alias sc-mask-now="sc-mask --now"
@@ -74,17 +93,24 @@ alias scu-enable-now="scu-enable --now"
alias scu-disable-now="scu-disable --now"
alias scu-mask-now="scu-mask --now"
+
function systemd_prompt_info {
local unit
- for unit in $@; do
+ for unit in "$@"; do
echo -n "$ZSH_THEME_SYSTEMD_PROMPT_PREFIX"
- [[ -n "$ZSH_THEME_SYSTEMD_PROMPT_CAPS" ]] && echo -n "${(U)unit}:" || echo -n "$unit:"
- if systemctl is-active $unit &>/dev/null; then
- echo -n "$ZSH_THEME_SYSTEMD_PROMPT_ACTIVE"
+
+ if [[ -n "$ZSH_THEME_SYSTEMD_PROMPT_CAPS" ]]; then
+ echo -n "${(U)unit:gs/%/%%}:"
+ else
+ echo -n "${unit:gs/%/%%}:"
+ fi
+
+ if systemctl is-active "$unit" &>/dev/null; then
+ echo -n "$ZSH_THEME_SYSTEMD_PROMPT_ACTIVE"
else
- echo -n "$ZSH_THEME_SYSTEMD_PROMPT_NOTACTIVE"
+ echo -n "$ZSH_THEME_SYSTEMD_PROMPT_NOTACTIVE"
fi
+
echo -n "$ZSH_THEME_SYSTEMD_PROMPT_SUFFIX"
done
}
-