fix(systemd): remove sudo from power-related aliases (#9441)

This commit is contained in:
scrouthtv 2021-12-29 10:31:29 +01:00 committed by GitHub
parent cffa9a2fda
commit 5b2f99bcb7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 52 additions and 23 deletions

View file

@ -3,7 +3,8 @@
The systemd plugin provides many useful aliases for systemd. The systemd plugin provides many useful aliases for systemd.
To use it, add systemd to the plugins array of your zshrc file: To use it, add systemd to the plugins array of your zshrc file:
```
```zsh
plugins=(... systemd) plugins=(... systemd)
``` ```
@ -22,7 +23,7 @@ plugins=(... systemd)
| `sc-show-environment` | `systemctl show-environment` | Dump the systemd manager environment block | | `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-cat` | `systemctl cat` | Show backing files of one or more units |
| `sc-list-timers` | `systemctl list-timers` | List timer units currently in memory | | `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-start` | `sudo systemctl start` | Start Unit(s) |
| `sc-stop` | `sudo systemctl stop` | Stop Unit(s) | | `sc-stop` | `sudo systemctl stop` | Stop Unit(s) |
| `sc-reload` | `sudo systemctl reload` | Reload 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). may be specified).
The plugin will add the following to your prompt for each `$unit`. The plugin will add the following to your prompt for each `$unit`.
```
```text
<prefix><unit>:<active|notactive><suffix> <prefix><unit>:<active|notactive><suffix>
``` ```
You can control these parts with the following variables: You can control these parts with the following variables:
- `<prefix>`: Set `$ZSH_THEME_SYSTEMD_PROMPT_PREFIX`. - `<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: 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_PREFIX="["
ZSH_THEME_SYSTEMD_PROMPT_SUFFIX="]" ZSH_THEME_SYSTEMD_PROMPT_SUFFIX="]"
ZSH_THEME_SYSTEMD_PROMPT_ACTIVE="+" 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: If `dhcpd` is running, and `httpd` is not, then your prompt will look like this:
``` ```text
[DHCPD: +][HTTPD: X] [DHCPD: +][HTTPD: X]
``` ```

View file

@ -1,3 +1,4 @@
# systemctl aliases
user_commands=( user_commands=(
cat cat
get-default get-default
@ -14,7 +15,8 @@ user_commands=(
list-units list-units
show show
show-environment show-environment
status) status
)
sudo_commands=( sudo_commands=(
add-requires add-requires
@ -28,8 +30,6 @@ sudo_commands=(
emergency emergency
enable enable
halt halt
hibernate
hybrid-sleep
import-environment import-environment
isolate isolate
kexec kexec
@ -38,34 +38,53 @@ sudo_commands=(
list-machines list-machines
load load
mask mask
poweroff
preset preset
preset-all preset-all
reboot
reenable reenable
reload reload
reload-or-restart reload-or-restart
reset-failed reset-failed
rescue rescue
restart
revert revert
set-default set-default
set-environment set-environment
set-property set-property
start start
stop stop
suspend
switch-root switch-root
try-reload-or-restart try-reload-or-restart
try-restart try-restart
unmask unmask
unset-environment) unset-environment
)
for c in $user_commands; do; alias sc-$c="systemctl $c"; done power_commands=(
for c in $sudo_commands; do; alias sc-$c="sudo systemctl $c"; done hibernate
for c in $user_commands; do; alias scu-$c="systemctl --user $c"; done hybrid-sleep
for c in $sudo_commands; do; alias scu-$c="systemctl --user $c"; done 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 $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-enable-now="sc-enable --now"
alias sc-disable-now="sc-disable --now" alias sc-disable-now="sc-disable --now"
alias sc-mask-now="sc-mask --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-disable-now="scu-disable --now"
alias scu-mask-now="scu-mask --now" alias scu-mask-now="scu-mask --now"
function systemd_prompt_info { function systemd_prompt_info {
local unit local unit
for unit in $@; do for unit in "$@"; do
echo -n "$ZSH_THEME_SYSTEMD_PROMPT_PREFIX" 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 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" echo -n "$ZSH_THEME_SYSTEMD_PROMPT_ACTIVE"
else else
echo -n "$ZSH_THEME_SYSTEMD_PROMPT_NOTACTIVE" echo -n "$ZSH_THEME_SYSTEMD_PROMPT_NOTACTIVE"
fi fi
echo -n "$ZSH_THEME_SYSTEMD_PROMPT_SUFFIX" echo -n "$ZSH_THEME_SYSTEMD_PROMPT_SUFFIX"
done done
} }