Init
This commit is contained in:
commit
d6985ded7e
18 changed files with 348 additions and 0 deletions
42
autostart-manage/lib/colors.sh
Normal file
42
autostart-manage/lib/colors.sh
Normal file
|
@ -0,0 +1,42 @@
|
|||
## Color functions [@bashly-upgrade colors]
|
||||
## This file is a part of Bashly standard library
|
||||
##
|
||||
## Usage:
|
||||
## Use any of the functions below to color or format a portion of a string.
|
||||
##
|
||||
## echo "before $(red this is red) after"
|
||||
## echo "before $(green_bold this is green_bold) after"
|
||||
##
|
||||
## Color output will be disabled if `NO_COLOR` environment variable is set
|
||||
## in compliance with https://no-color.org/
|
||||
##
|
||||
print_in_color() {
|
||||
local color="$1"
|
||||
shift
|
||||
if [[ -z ${NO_COLOR+x} ]]; then
|
||||
printf "$color%b\e[0m\n" "$*"
|
||||
else
|
||||
printf "%b\n" "$*"
|
||||
fi
|
||||
}
|
||||
|
||||
red() { print_in_color "\e[31m" "$*"; }
|
||||
green() { print_in_color "\e[32m" "$*"; }
|
||||
yellow() { print_in_color "\e[33m" "$*"; }
|
||||
blue() { print_in_color "\e[34m" "$*"; }
|
||||
magenta() { print_in_color "\e[35m" "$*"; }
|
||||
cyan() { print_in_color "\e[36m" "$*"; }
|
||||
bold() { print_in_color "\e[1m" "$*"; }
|
||||
underlined() { print_in_color "\e[4m" "$*"; }
|
||||
red_bold() { print_in_color "\e[1;31m" "$*"; }
|
||||
green_bold() { print_in_color "\e[1;32m" "$*"; }
|
||||
yellow_bold() { print_in_color "\e[1;33m" "$*"; }
|
||||
blue_bold() { print_in_color "\e[1;34m" "$*"; }
|
||||
magenta_bold() { print_in_color "\e[1;35m" "$*"; }
|
||||
cyan_bold() { print_in_color "\e[1;36m" "$*"; }
|
||||
red_underlined() { print_in_color "\e[4;31m" "$*"; }
|
||||
green_underlined() { print_in_color "\e[4;32m" "$*"; }
|
||||
yellow_underlined() { print_in_color "\e[4;33m" "$*"; }
|
||||
blue_underlined() { print_in_color "\e[4;34m" "$*"; }
|
||||
magenta_underlined() { print_in_color "\e[4;35m" "$*"; }
|
||||
cyan_underlined() { print_in_color "\e[4;36m" "$*"; }
|
57
autostart-manage/lib/common.sh
Normal file
57
autostart-manage/lib/common.sh
Normal file
|
@ -0,0 +1,57 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
_systemctl () {
|
||||
systemctl --user "${@:2}" "autostart@$1.service"
|
||||
}
|
||||
|
||||
_query_autostart_toml() {
|
||||
tomlq -r --arg host "$HOSTNAME" \
|
||||
'.hosts[$host].groups as $groups | .apps | to_entries[] | select(
|
||||
(.value.hosts | contains([$host])) or
|
||||
([.value.group] | inside($groups))
|
||||
) | '"$1" \
|
||||
"$XDG_CONFIG_HOME/autostart.toml"
|
||||
}
|
||||
|
||||
_list () {
|
||||
_query_autostart_toml '.value.alias // .key'
|
||||
}
|
||||
|
||||
_autostart_run_graphical () {
|
||||
pass x # Try to unlock yubikey asap
|
||||
|
||||
start-audio pipewire
|
||||
wait-for-service "network-online.target"
|
||||
|
||||
# Execute only if not already running
|
||||
# Don't match keepassxc-proxy
|
||||
if ! (pgrep -l keepassxc | grep -v prox) >/dev/null
|
||||
then
|
||||
if pass x
|
||||
then
|
||||
(pass keepass | head -n 1 | keepassxc --pw-stdin ~/sync/passwords.kdbx) &
|
||||
fi
|
||||
fi
|
||||
|
||||
autoinstall graphical
|
||||
autostart-manage run
|
||||
}
|
||||
|
||||
_echo_table () {
|
||||
for unit in "$@"
|
||||
do
|
||||
printf "%s\t%s\t%s\t%s\n" \
|
||||
"$unit" \
|
||||
"$(_systemctl "$unit" is-enabled)" \
|
||||
"$(_systemctl "$unit" is-active)" \
|
||||
"$(_get_autostart_cmd "$unit")"
|
||||
done
|
||||
}
|
||||
|
||||
_get_autostart_cmd () {
|
||||
_query_autostart_toml 'select((.key == "'"$1"'") or (.value.alias == "'"$1"'")) | .value.command'
|
||||
}
|
||||
|
||||
_get_autostart_delay () {
|
||||
_query_autostart_toml 'select((.key == "'"$1"'") or (.value.alias == "'"$1"'")) | .value.delay // 0'
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue