autoinstall/output/autostart-manage

2221 lines
45 KiB
Text
Raw Normal View History

2024-10-28 19:37:23 +00:00
#!/usr/bin/env bash
# This script was generated by bashly 1.1.10 (https://bashly.dannyb.co)
# Modifying it manually is not recommended
# :wrapper.bash3_bouncer
if [[ "${BASH_VERSINFO:-0}" -lt 4 ]]; then
printf "bash version 4 or higher is required\n" >&2
exit 1
fi
# :command.master_script
# :command.version_command
version_command() {
echo "$version"
}
# :command.usage
autostart_manage_usage() {
if [[ -n $long_usage ]]; then
printf "autostart-manage - Manage autostart\n"
echo
else
printf "autostart-manage - Manage autostart\n"
echo
fi
printf "%s\n" "$(blue "Usage:")"
printf " autostart-manage COMMAND\n"
printf " autostart-manage [COMMAND] --help | -h\n"
printf " autostart-manage --version | -v\n"
echo
# :command.usage_commands
printf "%s\n" "$(blue "Commands:")"
printf " %s Generate bash completions\n" "$(green "completions")"
printf " %s List available programs\n" "$(green "list") "
printf " %s Get the current status of all programs\n" "$(green "info") "
printf " %s Remove all programs from autostart and the re-enable all\n" "$(green "sync") "
printf " %s Add a single program to autostart\n" "$(green "enable") "
printf " %s Remove a single program from autostart\n" "$(green "disable") "
printf " %s Restart programs from autostart\n" "$(green "restart") "
printf " %s Start programs from autostart\n" "$(green "start") "
printf " %s Check status of programs from autostart\n" "$(green "status") "
printf " %s Stop programs from autostart\n" "$(green "stop") "
printf " %s Kill the program from autostart\n" "$(green "kill") "
printf " %s Show the log for a single program from autostart\n" "$(green "log") "
printf " %s Execute a single program from autostart\n" "$(green "exec") "
printf " %s Run all programs\n" "$(green "run") "
printf " %s Run all the wayland specific tasks and all programs\n" "$(green "run-wayland")"
printf " %s Run all the xorg specific tasks and all programs\n" "$(green "run-xorg") "
echo
# :command.long_usage
if [[ -n $long_usage ]]; then
printf "%s\n" "$(blue "Options:")"
# :command.usage_fixed_flags
printf " %s\n" "$(yellow "--help, -h")"
printf " Show this help\n"
echo
printf " %s\n" "$(yellow "--version, -v")"
printf " Show version number\n"
echo
# :command.usage_environment_variables
printf "%s\n" "$(blue "Environment Variables:")"
# :environment_variable.usage
printf " %s\n" "$(cyan "HOSTNAME")"
printf " The hostname to use. We will try to get the value automatically.\n"
echo
fi
}
# :command.usage
autostart_manage_completions_usage() {
if [[ -n $long_usage ]]; then
printf "autostart-manage completions - Generate bash completions\n"
echo
else
printf "autostart-manage completions - Generate bash completions\n"
echo
fi
printf "%s\n" "$(blue "Usage:")"
printf " autostart-manage completions\n"
printf " autostart-manage completions --help | -h\n"
echo
# :command.long_usage
if [[ -n $long_usage ]]; then
printf "%s\n" "$(blue "Options:")"
# :command.usage_fixed_flags
printf " %s\n" "$(yellow "--help, -h")"
printf " Show this help\n"
echo
fi
}
# :command.usage
autostart_manage_list_usage() {
if [[ -n $long_usage ]]; then
printf "autostart-manage list - List available programs\n"
echo
else
printf "autostart-manage list - List available programs\n"
echo
fi
printf "%s\n" "$(blue "Usage:")"
printf " autostart-manage list\n"
printf " autostart-manage list --help | -h\n"
echo
# :command.long_usage
if [[ -n $long_usage ]]; then
printf "%s\n" "$(blue "Options:")"
# :command.usage_fixed_flags
printf " %s\n" "$(yellow "--help, -h")"
printf " Show this help\n"
echo
fi
}
# :command.usage
autostart_manage_info_usage() {
if [[ -n $long_usage ]]; then
printf "autostart-manage info - Get the current status of all programs\n"
echo
else
printf "autostart-manage info - Get the current status of all programs\n"
echo
fi
printf "%s\n" "$(blue "Usage:")"
printf " autostart-manage info\n"
printf " autostart-manage info --help | -h\n"
echo
# :command.long_usage
if [[ -n $long_usage ]]; then
printf "%s\n" "$(blue "Options:")"
# :command.usage_fixed_flags
printf " %s\n" "$(yellow "--help, -h")"
printf " Show this help\n"
echo
fi
}
# :command.usage
autostart_manage_sync_usage() {
if [[ -n $long_usage ]]; then
printf "autostart-manage sync - Remove all programs from autostart and the re-enable all\n"
echo
else
printf "autostart-manage sync - Remove all programs from autostart and the re-enable all\n"
echo
fi
printf "%s\n" "$(blue "Usage:")"
printf " autostart-manage sync [GROUPS]\n"
printf " autostart-manage sync --help | -h\n"
echo
# :command.long_usage
if [[ -n $long_usage ]]; then
printf "%s\n" "$(blue "Options:")"
# :command.usage_fixed_flags
printf " %s\n" "$(yellow "--help, -h")"
printf " Show this help\n"
echo
# :command.usage_args
printf "%s\n" "$(blue "Arguments:")"
# :argument.usage
printf " %s\n" "$(red "GROUPS")"
printf " Extra groups to sync\n"
echo
fi
}
# :command.usage
autostart_manage_enable_usage() {
if [[ -n $long_usage ]]; then
printf "autostart-manage enable - Add a single program to autostart\n"
echo
else
printf "autostart-manage enable - Add a single program to autostart\n"
echo
fi
printf "%s\n" "$(blue "Usage:")"
printf " autostart-manage enable PROGRAM\n"
printf " autostart-manage enable --help | -h\n"
echo
# :command.long_usage
if [[ -n $long_usage ]]; then
printf "%s\n" "$(blue "Options:")"
# :command.usage_fixed_flags
printf " %s\n" "$(yellow "--help, -h")"
printf " Show this help\n"
echo
# :command.usage_args
printf "%s\n" "$(blue "Arguments:")"
# :argument.usage
printf " %s\n" "$(red "PROGRAM")"
printf " Program to add to autostart\n"
echo
fi
}
# :command.usage
autostart_manage_disable_usage() {
if [[ -n $long_usage ]]; then
printf "autostart-manage disable - Remove a single program from autostart\n"
echo
else
printf "autostart-manage disable - Remove a single program from autostart\n"
echo
fi
printf "%s\n" "$(blue "Usage:")"
printf " autostart-manage disable PROGRAM\n"
printf " autostart-manage disable --help | -h\n"
echo
# :command.long_usage
if [[ -n $long_usage ]]; then
printf "%s\n" "$(blue "Options:")"
# :command.usage_fixed_flags
printf " %s\n" "$(yellow "--help, -h")"
printf " Show this help\n"
echo
# :command.usage_args
printf "%s\n" "$(blue "Arguments:")"
# :argument.usage
printf " %s\n" "$(red "PROGRAM")"
printf " Program to add to autostart\n"
echo
fi
}
# :command.usage
autostart_manage_restart_usage() {
if [[ -n $long_usage ]]; then
printf "autostart-manage restart - Restart programs from autostart\n"
echo
else
printf "autostart-manage restart - Restart programs from autostart\n"
echo
fi
printf "%s\n" "$(blue "Usage:")"
printf " autostart-manage restart [PROGRAM]\n"
printf " autostart-manage restart --help | -h\n"
echo
# :command.long_usage
if [[ -n $long_usage ]]; then
printf "%s\n" "$(blue "Options:")"
# :command.usage_fixed_flags
printf " %s\n" "$(yellow "--help, -h")"
printf " Show this help\n"
echo
# :command.usage_args
printf "%s\n" "$(blue "Arguments:")"
# :argument.usage
printf " %s\n" "$(red "PROGRAM")"
printf " Program to add to autostart\n"
printf " Default: *\n"
echo
fi
}
# :command.usage
autostart_manage_start_usage() {
if [[ -n $long_usage ]]; then
printf "autostart-manage start - Start programs from autostart\n"
echo
else
printf "autostart-manage start - Start programs from autostart\n"
echo
fi
printf "%s\n" "$(blue "Usage:")"
printf " autostart-manage start [PROGRAM]\n"
printf " autostart-manage start --help | -h\n"
echo
# :command.long_usage
if [[ -n $long_usage ]]; then
printf "%s\n" "$(blue "Options:")"
# :command.usage_fixed_flags
printf " %s\n" "$(yellow "--help, -h")"
printf " Show this help\n"
echo
# :command.usage_args
printf "%s\n" "$(blue "Arguments:")"
# :argument.usage
printf " %s\n" "$(red "PROGRAM")"
printf " Program to start to autostart\n"
printf " Default: *\n"
echo
fi
}
# :command.usage
autostart_manage_status_usage() {
if [[ -n $long_usage ]]; then
printf "autostart-manage status - Check status of programs from autostart\n"
echo
else
printf "autostart-manage status - Check status of programs from autostart\n"
echo
fi
printf "%s\n" "$(blue "Usage:")"
printf " autostart-manage status [PROGRAM]\n"
printf " autostart-manage status --help | -h\n"
echo
# :command.long_usage
if [[ -n $long_usage ]]; then
printf "%s\n" "$(blue "Options:")"
# :command.usage_fixed_flags
printf " %s\n" "$(yellow "--help, -h")"
printf " Show this help\n"
echo
# :command.usage_args
printf "%s\n" "$(blue "Arguments:")"
# :argument.usage
printf " %s\n" "$(red "PROGRAM")"
printf " Program to check status on\n"
printf " Default: *\n"
echo
fi
}
# :command.usage
autostart_manage_stop_usage() {
if [[ -n $long_usage ]]; then
printf "autostart-manage stop - Stop programs from autostart\n"
echo
else
printf "autostart-manage stop - Stop programs from autostart\n"
echo
fi
printf "%s\n" "$(blue "Usage:")"
printf " autostart-manage stop [PROGRAM]\n"
printf " autostart-manage stop --help | -h\n"
echo
# :command.long_usage
if [[ -n $long_usage ]]; then
printf "%s\n" "$(blue "Options:")"
# :command.usage_fixed_flags
printf " %s\n" "$(yellow "--help, -h")"
printf " Show this help\n"
echo
# :command.usage_args
printf "%s\n" "$(blue "Arguments:")"
# :argument.usage
printf " %s\n" "$(red "PROGRAM")"
printf " Program to stop\n"
printf " Default: *\n"
echo
fi
}
# :command.usage
autostart_manage_kill_usage() {
if [[ -n $long_usage ]]; then
printf "autostart-manage kill - Kill the program from autostart\n"
echo
else
printf "autostart-manage kill - Kill the program from autostart\n"
echo
fi
printf "%s\n" "$(blue "Usage:")"
printf " autostart-manage kill PROGRAM\n"
printf " autostart-manage kill --help | -h\n"
echo
# :command.long_usage
if [[ -n $long_usage ]]; then
printf "%s\n" "$(blue "Options:")"
# :command.usage_fixed_flags
printf " %s\n" "$(yellow "--help, -h")"
printf " Show this help\n"
echo
# :command.usage_args
printf "%s\n" "$(blue "Arguments:")"
# :argument.usage
printf " %s\n" "$(red "PROGRAM")"
printf " Program to kill\n"
echo
fi
}
# :command.usage
autostart_manage_log_usage() {
if [[ -n $long_usage ]]; then
printf "autostart-manage log - Show the log for a single program from autostart\n"
echo
else
printf "autostart-manage log - Show the log for a single program from autostart\n"
echo
fi
printf "Alias: logs\n"
echo
printf "%s\n" "$(blue "Usage:")"
printf " autostart-manage log PROGRAM\n"
printf " autostart-manage log --help | -h\n"
echo
# :command.long_usage
if [[ -n $long_usage ]]; then
printf "%s\n" "$(blue "Options:")"
# :command.usage_fixed_flags
printf " %s\n" "$(yellow "--help, -h")"
printf " Show this help\n"
echo
# :command.usage_args
printf "%s\n" "$(blue "Arguments:")"
# :argument.usage
printf " %s\n" "$(red "PROGRAM")"
printf " Program to log\n"
echo
fi
}
# :command.usage
autostart_manage_exec_usage() {
if [[ -n $long_usage ]]; then
printf "autostart-manage exec - Execute a single program from autostart\n"
echo
else
printf "autostart-manage exec - Execute a single program from autostart\n"
echo
fi
printf "%s\n" "$(blue "Usage:")"
printf " autostart-manage exec PROGRAM\n"
printf " autostart-manage exec --help | -h\n"
echo
# :command.long_usage
if [[ -n $long_usage ]]; then
printf "%s\n" "$(blue "Options:")"
# :command.usage_fixed_flags
printf " %s\n" "$(yellow "--help, -h")"
printf " Show this help\n"
echo
# :command.usage_args
printf "%s\n" "$(blue "Arguments:")"
# :argument.usage
printf " %s\n" "$(red "PROGRAM")"
printf " Program to execute\n"
echo
fi
}
# :command.usage
autostart_manage_run_usage() {
if [[ -n $long_usage ]]; then
printf "autostart-manage run - Run all programs\n"
echo
else
printf "autostart-manage run - Run all programs\n"
echo
fi
printf "%s\n" "$(blue "Usage:")"
printf " autostart-manage run\n"
printf " autostart-manage run --help | -h\n"
echo
# :command.long_usage
if [[ -n $long_usage ]]; then
printf "%s\n" "$(blue "Options:")"
# :command.usage_fixed_flags
printf " %s\n" "$(yellow "--help, -h")"
printf " Show this help\n"
echo
fi
}
# :command.usage
autostart_manage_run_wayland_usage() {
if [[ -n $long_usage ]]; then
printf "autostart-manage run-wayland - Run all the wayland specific tasks and all programs\n"
echo
else
printf "autostart-manage run-wayland - Run all the wayland specific tasks and all programs\n"
echo
fi
printf "%s\n" "$(blue "Usage:")"
printf " autostart-manage run-wayland\n"
printf " autostart-manage run-wayland --help | -h\n"
echo
# :command.long_usage
if [[ -n $long_usage ]]; then
printf "%s\n" "$(blue "Options:")"
# :command.usage_fixed_flags
printf " %s\n" "$(yellow "--help, -h")"
printf " Show this help\n"
echo
fi
}
# :command.usage
autostart_manage_run_xorg_usage() {
if [[ -n $long_usage ]]; then
printf "autostart-manage run-xorg - Run all the xorg specific tasks and all programs\n"
echo
else
printf "autostart-manage run-xorg - Run all the xorg specific tasks and all programs\n"
echo
fi
printf "%s\n" "$(blue "Usage:")"
printf " autostart-manage run-xorg\n"
printf " autostart-manage run-xorg --help | -h\n"
echo
# :command.long_usage
if [[ -n $long_usage ]]; then
printf "%s\n" "$(blue "Options:")"
# :command.usage_fixed_flags
printf " %s\n" "$(yellow "--help, -h")"
printf " Show this help\n"
echo
fi
}
# :command.normalize_input
# :command.normalize_input_function
normalize_input() {
local arg flags passthru
passthru=false
while [[ $# -gt 0 ]]; do
arg="$1"
if [[ $passthru == true ]]; then
input+=("$arg")
elif [[ $arg =~ ^(--[a-zA-Z0-9_\-]+)=(.+)$ ]]; then
input+=("${BASH_REMATCH[1]}")
input+=("${BASH_REMATCH[2]}")
elif [[ $arg =~ ^(-[a-zA-Z0-9])=(.+)$ ]]; then
input+=("${BASH_REMATCH[1]}")
input+=("${BASH_REMATCH[2]}")
elif [[ $arg =~ ^-([a-zA-Z0-9][a-zA-Z0-9]+)$ ]]; then
flags="${BASH_REMATCH[1]}"
for ((i = 0; i < ${#flags}; i++)); do
input+=("-${flags:i:1}")
done
elif [[ "$arg" == "--" ]]; then
passthru=true
input+=("$arg")
else
input+=("$arg")
fi
shift
done
}
# :command.inspect_args
inspect_args() {
if ((${#args[@]})); then
readarray -t sorted_keys < <(printf '%s\n' "${!args[@]}" | sort)
echo args:
for k in "${sorted_keys[@]}"; do
echo "- \${args[$k]} = ${args[$k]}"
done
else
echo args: none
fi
if ((${#other_args[@]})); then
echo
echo other_args:
echo "- \${other_args[*]} = ${other_args[*]}"
for i in "${!other_args[@]}"; do
echo "- \${other_args[$i]} = ${other_args[$i]}"
done
fi
if ((${#deps[@]})); then
readarray -t sorted_keys < <(printf '%s\n' "${!deps[@]}" | sort)
echo
echo deps:
for k in "${sorted_keys[@]}"; do
echo "- \${deps[$k]} = ${deps[$k]}"
done
fi
if ((${#env_var_names[@]})); then
readarray -t sorted_names < <(printf '%s\n' "${env_var_names[@]}" | sort)
echo
echo "environment variables:"
for k in "${sorted_names[@]}"; do
echo "- \$$k = ${!k:-}"
done
fi
}
# :command.user_lib
# autostart-manage/lib/colors.sh
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" "$*"; }
# autostart-manage/lib/common.sh
#!/usr/bin/env bash
_systemctl () {
systemctl --user "${@:2}" "autostart@$1.service"
}
_query_autostart_toml() {
groups_json=$(echo -n "$2" | tr "," "\n" | jq -R . | jq -s .)
tomlq -r \
--arg host "$HOSTNAME" \
--argjson extra_groups "$groups_json" \
'.hosts[$host].groups as $groups | .apps | to_entries[] | select(
(.value.hosts | contains([$host])) or
([.value.group] | inside($groups)) or
([.value.group] | inside($extra_groups)) or
$extra_groups == ["*"]
) | '"$1" \
"$XDG_CONFIG_HOME/autostart.toml"
}
_list () {
_query_autostart_toml '.value.alias // .key' "$1"
}
_autostart_run_graphical () {
set +e
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 run graphical
autostart-manage run
}
_echo_table () {
for unit in "$@"
do
if [ "$(_systemctl "$unit" is-enabled)" = "enabled" ]
then
_enabled=$(green "enabled")
else
_enabled=$(red "disabled")
fi
if _systemctl "$unit" is-active --quiet
then
_active=$(green "active")
else
_active=$(red "inactive")
fi
printf "%s\t%s\t%s\t%s\n" \
"$unit" \
"$_enabled" \
"$_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' "*"
}
# autostart-manage/lib/send_completions.sh
send_completions() {
echo $'# autostart-manage completion -*- shell-script -*-'
echo $''
echo $'# This bash completions script was generated by'
echo $'# completely (https://github.com/dannyben/completely)'
echo $'# Modifying it manually is not recommended'
echo $''
echo $'_autostart-manage_completions_filter() {'
echo $' local words="$1"'
echo $' local cur=${COMP_WORDS[COMP_CWORD]}'
echo $' local result=()'
echo $''
echo $' if [[ "${cur:0:1}" == "-" ]]; then'
echo $' echo "$words"'
echo $' '
echo $' else'
echo $' for word in $words; do'
echo $' [[ "${word:0:1}" != "-" ]] && result+=("$word")'
echo $' done'
echo $''
echo $' echo "${result[*]}"'
echo $''
echo $' fi'
echo $'}'
echo $''
echo $'_autostart-manage_completions() {'
echo $' local cur=${COMP_WORDS[COMP_CWORD]}'
echo $' local compwords=("${COMP_WORDS[@]:1:$COMP_CWORD-1}")'
echo $' local compline="${compwords[*]}"'
echo $''
echo $' case "$compline" in'
echo $' \'completions\'*)'
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_autostart-manage_completions_filter "--help -h")" -- "$cur" )'
echo $' ;;'
echo $''
echo $' \'run-wayland\'*)'
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_autostart-manage_completions_filter "--help -h")" -- "$cur" )'
echo $' ;;'
echo $''
echo $' \'run-xorg\'*)'
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_autostart-manage_completions_filter "--help -h")" -- "$cur" )'
echo $' ;;'
echo $''
echo $' \'restart\'*)'
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_autostart-manage_completions_filter "$(autostart-manage list) --help -h")" -- "$cur" )'
echo $' ;;'
echo $''
echo $' \'disable\'*)'
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_autostart-manage_completions_filter "$(autostart-manage list) --help -h")" -- "$cur" )'
echo $' ;;'
echo $''
echo $' \'status\'*)'
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_autostart-manage_completions_filter "$(autostart-manage list) --help -h")" -- "$cur" )'
echo $' ;;'
echo $''
echo $' \'enable\'*)'
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_autostart-manage_completions_filter "$(autostart-manage list) --help -h")" -- "$cur" )'
echo $' ;;'
echo $''
echo $' \'start\'*)'
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_autostart-manage_completions_filter "$(autostart-manage list) --help -h")" -- "$cur" )'
echo $' ;;'
echo $''
echo $' \'sync\'*)'
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_autostart-manage_completions_filter "--help -h")" -- "$cur" )'
echo $' ;;'
echo $''
echo $' \'info\'*)'
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_autostart-manage_completions_filter "--help -h")" -- "$cur" )'
echo $' ;;'
echo $''
echo $' \'stop\'*)'
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_autostart-manage_completions_filter "$(autostart-manage list) --help -h")" -- "$cur" )'
echo $' ;;'
echo $''
echo $' \'kill\'*)'
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_autostart-manage_completions_filter "$(autostart-manage list) --help -h")" -- "$cur" )'
echo $' ;;'
echo $''
echo $' \'logs\'*)'
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_autostart-manage_completions_filter "$(autostart-manage list) --help -h")" -- "$cur" )'
echo $' ;;'
echo $''
echo $' \'exec\'*)'
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_autostart-manage_completions_filter "$(autostart-manage list) --help -h")" -- "$cur" )'
echo $' ;;'
echo $''
echo $' \'list\'*)'
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_autostart-manage_completions_filter "--help -h")" -- "$cur" )'
echo $' ;;'
echo $''
echo $' \'log\'*)'
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_autostart-manage_completions_filter "$(autostart-manage list) --help -h")" -- "$cur" )'
echo $' ;;'
echo $''
echo $' \'run\'*)'
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_autostart-manage_completions_filter "--help -h")" -- "$cur" )'
echo $' ;;'
echo $''
echo $' *)'
echo $' while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_autostart-manage_completions_filter "--help --version -h -v completions disable enable exec info kill list log logs restart run run-wayland run-xorg start status stop sync")" -- "$cur" )'
echo $' ;;'
echo $''
echo $' esac'
echo $'} &&'
echo $'complete -F _autostart-manage_completions autostart-manage'
echo $''
echo $'# ex: filetype=sh'
}
# autostart-manage/lib/systemd_files.sh
#!/usr/bin/env bash
_deploy_service_file() {
cat <<EOF > "$1"
[Unit]
Description=Autostart several tools and services
StartLimitIntervalSec=120
StartLimitBurst=10
[Service]
KillMode=process
ExecStart=/bin/sh -c ". \$HOME/.profile && autostart-manage exec '%i'"
Restart=on-failure
RestartSec=5s
EOF
}
_deploy_target_file() {
cat <<EOF > "$1"
[Unit]
Description=Current graphical user session
Documentation=man:systemd.special(7)
RefuseManualStart=no
StopWhenUnneeded=no
EOF
}
# :command.command_functions
# :command.function
autostart_manage_completions_command() {
# autostart-manage/completions_command.sh
#!/usr/bin/env bash
send_completions
}
# :command.function
autostart_manage_list_command() {
# autostart-manage/list_command.sh
#!/usr/bin/env bash
_list "*"
}
# :command.function
autostart_manage_info_command() {
# autostart-manage/info_command.sh
#!/usr/bin/env bash
autostart_units=()
while IFS='' read -r line
do
autostart_units+=("$line")
done < <(_list "*")
_echo_table "${autostart_units[@]}" | column -t -s$'\t' --table-columns 'Unit,Enabled?,Active?,Command'
}
# :command.function
autostart_manage_sync_command() {
# autostart-manage/sync_command.sh
#!/usr/bin/env bash
rm -f "$HOME/.config/systemd/user/autostart.target.wants/"*
autostart_units=()
while IFS='' read -r line
do
autostart_units+=("autostart@$line.service")
done < <(_list "${args[groups]:-}")
systemctl --user add-wants autostart.target "${autostart_units[@]}"
}
# :command.function
autostart_manage_enable_command() {
# autostart-manage/systemctl.sh
#!/usr/bin/env bash
systemctl_args=("$action")
if [[ $action == "enable" ]]; then
systemctl_args=("add-wants" "autostart.target")
fi
#shellcheck disable=SC2068
_systemctl "${args[program]:?}" "${systemctl_args[@]}"
}
# :command.function
autostart_manage_disable_command() {
# autostart-manage/systemctl.sh
#!/usr/bin/env bash
systemctl_args=("$action")
if [[ $action == "enable" ]]; then
systemctl_args=("add-wants" "autostart.target")
fi
#shellcheck disable=SC2068
_systemctl "${args[program]:?}" "${systemctl_args[@]}"
}
# :command.function
autostart_manage_restart_command() {
# autostart-manage/systemctl.sh
#!/usr/bin/env bash
systemctl_args=("$action")
if [[ $action == "enable" ]]; then
systemctl_args=("add-wants" "autostart.target")
fi
#shellcheck disable=SC2068
_systemctl "${args[program]:?}" "${systemctl_args[@]}"
}
# :command.function
autostart_manage_start_command() {
# autostart-manage/systemctl.sh
#!/usr/bin/env bash
systemctl_args=("$action")
if [[ $action == "enable" ]]; then
systemctl_args=("add-wants" "autostart.target")
fi
#shellcheck disable=SC2068
_systemctl "${args[program]:?}" "${systemctl_args[@]}"
}
# :command.function
autostart_manage_status_command() {
# autostart-manage/systemctl.sh
#!/usr/bin/env bash
systemctl_args=("$action")
if [[ $action == "enable" ]]; then
systemctl_args=("add-wants" "autostart.target")
fi
#shellcheck disable=SC2068
_systemctl "${args[program]:?}" "${systemctl_args[@]}"
}
# :command.function
autostart_manage_stop_command() {
# autostart-manage/systemctl.sh
#!/usr/bin/env bash
systemctl_args=("$action")
if [[ $action == "enable" ]]; then
systemctl_args=("add-wants" "autostart.target")
fi
#shellcheck disable=SC2068
_systemctl "${args[program]:?}" "${systemctl_args[@]}"
}
# :command.function
autostart_manage_kill_command() {
# autostart-manage/systemctl.sh
#!/usr/bin/env bash
systemctl_args=("$action")
if [[ $action == "enable" ]]; then
systemctl_args=("add-wants" "autostart.target")
fi
#shellcheck disable=SC2068
_systemctl "${args[program]:?}" "${systemctl_args[@]}"
}
# :command.function
autostart_manage_log_command() {
# autostart-manage/log_command.sh
#!/usr/bin/env bash
journalctl --user -fu "autostart@${args[program]:?}.service"
}
# :command.function
autostart_manage_exec_command() {
# autostart-manage/exec_command.sh
#!/usr/bin/env bash
program=${args[program]:?}
sleep "$(_get_autostart_delay "$program")"
bash -c "$(_get_autostart_cmd "$program")"
}
# :command.function
autostart_manage_run_command() {
# autostart-manage/run_command.sh
#!/usr/bin/env bash
systemctl --user start autostart.target
}
# :command.function
autostart_manage_run_wayland_command() {
# autostart-manage/run_wayland_command.sh
#!/usr/bin/env bash
_autostart_run_graphical
killall -SIGUSR2 waybar
}
# :command.function
autostart_manage_run_xorg_command() {
# autostart-manage/run_xorg_command.sh
#!/usr/bin/env bash
feh --bg-fill "$XDG_PICTURES_DIR/wallpaper/active_wallpaper"
"$HOME/.config/polybar/launch.sh" &
"$HOME/.config/bspwm/focus-voip.py" &
numlockx on
xsetroot -cursor_name left_ptr
xrdb "$HOME/.Xresources"
_autostart_run_graphical
}
# :command.parse_requirements
parse_requirements() {
# :command.fixed_flags_filter
while [[ $# -gt 0 ]]; do
case "${1:-}" in
--version | -v)
version_command
exit
;;
--help | -h)
long_usage=yes
autostart_manage_usage
exit
;;
*)
break
;;
esac
done
# :command.environment_variables_filter
env_var_names+=("HOSTNAME")
# :command.dependencies_filter
if command -v tomlq >/dev/null 2>&1; then
deps['tomlq']="$(command -v tomlq | head -n1)"
else
printf "missing dependency: tomlq\n" >&2
printf "%s\n" "please install yq (https://github.com/kislyuk/yq)" >&2
exit 1
fi
# :command.command_filter
action=${1:-}
case $action in
-*) ;;
completions)
action="completions"
shift
autostart_manage_completions_parse_requirements "$@"
shift $#
;;
list)
action="list"
shift
autostart_manage_list_parse_requirements "$@"
shift $#
;;
info)
action="info"
shift
autostart_manage_info_parse_requirements "$@"
shift $#
;;
sync)
action="sync"
shift
autostart_manage_sync_parse_requirements "$@"
shift $#
;;
enable)
action="enable"
shift
autostart_manage_enable_parse_requirements "$@"
shift $#
;;
disable)
action="disable"
shift
autostart_manage_disable_parse_requirements "$@"
shift $#
;;
restart)
action="restart"
shift
autostart_manage_restart_parse_requirements "$@"
shift $#
;;
start)
action="start"
shift
autostart_manage_start_parse_requirements "$@"
shift $#
;;
status)
action="status"
shift
autostart_manage_status_parse_requirements "$@"
shift $#
;;
stop)
action="stop"
shift
autostart_manage_stop_parse_requirements "$@"
shift $#
;;
kill)
action="kill"
shift
autostart_manage_kill_parse_requirements "$@"
shift $#
;;
log | logs)
action="log"
shift
autostart_manage_log_parse_requirements "$@"
shift $#
;;
exec)
action="exec"
shift
autostart_manage_exec_parse_requirements "$@"
shift $#
;;
run)
action="run"
shift
autostart_manage_run_parse_requirements "$@"
shift $#
;;
run-wayland)
action="run-wayland"
shift
autostart_manage_run_wayland_parse_requirements "$@"
shift $#
;;
run-xorg)
action="run-xorg"
shift
autostart_manage_run_xorg_parse_requirements "$@"
shift $#
;;
# :command.command_fallback
"")
autostart_manage_usage >&2
exit 1
;;
*)
printf "invalid command: %s\n" "$action" >&2
exit 1
;;
esac
# :command.parse_requirements_while
while [[ $# -gt 0 ]]; do
key="$1"
case "$key" in
-?*)
printf "invalid option: %s\n" "$key" >&2
exit 1
;;
*)
# :command.parse_requirements_case
# :command.parse_requirements_case_simple
printf "invalid argument: %s\n" "$key" >&2
exit 1
;;
esac
done
}
# :command.parse_requirements
autostart_manage_completions_parse_requirements() {
# :command.fixed_flags_filter
while [[ $# -gt 0 ]]; do
case "${1:-}" in
--help | -h)
long_usage=yes
autostart_manage_completions_usage
exit
;;
*)
break
;;
esac
done
# :command.command_filter
action="completions"
# :command.parse_requirements_while
while [[ $# -gt 0 ]]; do
key="$1"
case "$key" in
-?*)
printf "invalid option: %s\n" "$key" >&2
exit 1
;;
*)
# :command.parse_requirements_case
# :command.parse_requirements_case_simple
printf "invalid argument: %s\n" "$key" >&2
exit 1
;;
esac
done
}
# :command.parse_requirements
autostart_manage_list_parse_requirements() {
# :command.fixed_flags_filter
while [[ $# -gt 0 ]]; do
case "${1:-}" in
--help | -h)
long_usage=yes
autostart_manage_list_usage
exit
;;
*)
break
;;
esac
done
# :command.command_filter
action="list"
# :command.parse_requirements_while
while [[ $# -gt 0 ]]; do
key="$1"
case "$key" in
-?*)
printf "invalid option: %s\n" "$key" >&2
exit 1
;;
*)
# :command.parse_requirements_case
# :command.parse_requirements_case_simple
printf "invalid argument: %s\n" "$key" >&2
exit 1
;;
esac
done
}
# :command.parse_requirements
autostart_manage_info_parse_requirements() {
# :command.fixed_flags_filter
while [[ $# -gt 0 ]]; do
case "${1:-}" in
--help | -h)
long_usage=yes
autostart_manage_info_usage
exit
;;
*)
break
;;
esac
done
# :command.command_filter
action="info"
# :command.parse_requirements_while
while [[ $# -gt 0 ]]; do
key="$1"
case "$key" in
-?*)
printf "invalid option: %s\n" "$key" >&2
exit 1
;;
*)
# :command.parse_requirements_case
# :command.parse_requirements_case_simple
printf "invalid argument: %s\n" "$key" >&2
exit 1
;;
esac
done
}
# :command.parse_requirements
autostart_manage_sync_parse_requirements() {
# :command.fixed_flags_filter
while [[ $# -gt 0 ]]; do
case "${1:-}" in
--help | -h)
long_usage=yes
autostart_manage_sync_usage
exit
;;
*)
break
;;
esac
done
# :command.command_filter
action="sync"
# :command.parse_requirements_while
while [[ $# -gt 0 ]]; do
key="$1"
case "$key" in
-?*)
printf "invalid option: %s\n" "$key" >&2
exit 1
;;
*)
# :command.parse_requirements_case
# :command.parse_requirements_case_simple
# :argument.case
if [[ -z ${args['groups']+x} ]]; then
args['groups']=$1
shift
else
printf "invalid argument: %s\n" "$key" >&2
exit 1
fi
;;
esac
done
}
# :command.parse_requirements
autostart_manage_enable_parse_requirements() {
# :command.fixed_flags_filter
while [[ $# -gt 0 ]]; do
case "${1:-}" in
--help | -h)
long_usage=yes
autostart_manage_enable_usage
exit
;;
*)
break
;;
esac
done
# :command.command_filter
action="enable"
# :command.parse_requirements_while
while [[ $# -gt 0 ]]; do
key="$1"
case "$key" in
-?*)
printf "invalid option: %s\n" "$key" >&2
exit 1
;;
*)
# :command.parse_requirements_case
# :command.parse_requirements_case_simple
# :argument.case
if [[ -z ${args['program']+x} ]]; then
args['program']=$1
shift
else
printf "invalid argument: %s\n" "$key" >&2
exit 1
fi
;;
esac
done
# :command.required_args_filter
if [[ -z ${args['program']+x} ]]; then
printf "missing required argument: PROGRAM\nusage: autostart-manage enable PROGRAM\n" >&2
exit 1
fi
}
# :command.parse_requirements
autostart_manage_disable_parse_requirements() {
# :command.fixed_flags_filter
while [[ $# -gt 0 ]]; do
case "${1:-}" in
--help | -h)
long_usage=yes
autostart_manage_disable_usage
exit
;;
*)
break
;;
esac
done
# :command.command_filter
action="disable"
# :command.parse_requirements_while
while [[ $# -gt 0 ]]; do
key="$1"
case "$key" in
-?*)
printf "invalid option: %s\n" "$key" >&2
exit 1
;;
*)
# :command.parse_requirements_case
# :command.parse_requirements_case_simple
# :argument.case
if [[ -z ${args['program']+x} ]]; then
args['program']=$1
shift
else
printf "invalid argument: %s\n" "$key" >&2
exit 1
fi
;;
esac
done
# :command.required_args_filter
if [[ -z ${args['program']+x} ]]; then
printf "missing required argument: PROGRAM\nusage: autostart-manage disable PROGRAM\n" >&2
exit 1
fi
}
# :command.parse_requirements
autostart_manage_restart_parse_requirements() {
# :command.fixed_flags_filter
while [[ $# -gt 0 ]]; do
case "${1:-}" in
--help | -h)
long_usage=yes
autostart_manage_restart_usage
exit
;;
*)
break
;;
esac
done
# :command.command_filter
action="restart"
# :command.parse_requirements_while
while [[ $# -gt 0 ]]; do
key="$1"
case "$key" in
-?*)
printf "invalid option: %s\n" "$key" >&2
exit 1
;;
*)
# :command.parse_requirements_case
# :command.parse_requirements_case_simple
# :argument.case
if [[ -z ${args['program']+x} ]]; then
args['program']=$1
shift
else
printf "invalid argument: %s\n" "$key" >&2
exit 1
fi
;;
esac
done
# :command.default_assignments
[[ -n ${args['program']:-} ]] || args['program']="*"
}
# :command.parse_requirements
autostart_manage_start_parse_requirements() {
# :command.fixed_flags_filter
while [[ $# -gt 0 ]]; do
case "${1:-}" in
--help | -h)
long_usage=yes
autostart_manage_start_usage
exit
;;
*)
break
;;
esac
done
# :command.command_filter
action="start"
# :command.parse_requirements_while
while [[ $# -gt 0 ]]; do
key="$1"
case "$key" in
-?*)
printf "invalid option: %s\n" "$key" >&2
exit 1
;;
*)
# :command.parse_requirements_case
# :command.parse_requirements_case_simple
# :argument.case
if [[ -z ${args['program']+x} ]]; then
args['program']=$1
shift
else
printf "invalid argument: %s\n" "$key" >&2
exit 1
fi
;;
esac
done
# :command.default_assignments
[[ -n ${args['program']:-} ]] || args['program']="*"
}
# :command.parse_requirements
autostart_manage_status_parse_requirements() {
# :command.fixed_flags_filter
while [[ $# -gt 0 ]]; do
case "${1:-}" in
--help | -h)
long_usage=yes
autostart_manage_status_usage
exit
;;
*)
break
;;
esac
done
# :command.command_filter
action="status"
# :command.parse_requirements_while
while [[ $# -gt 0 ]]; do
key="$1"
case "$key" in
-?*)
printf "invalid option: %s\n" "$key" >&2
exit 1
;;
*)
# :command.parse_requirements_case
# :command.parse_requirements_case_simple
# :argument.case
if [[ -z ${args['program']+x} ]]; then
args['program']=$1
shift
else
printf "invalid argument: %s\n" "$key" >&2
exit 1
fi
;;
esac
done
# :command.default_assignments
[[ -n ${args['program']:-} ]] || args['program']="*"
}
# :command.parse_requirements
autostart_manage_stop_parse_requirements() {
# :command.fixed_flags_filter
while [[ $# -gt 0 ]]; do
case "${1:-}" in
--help | -h)
long_usage=yes
autostart_manage_stop_usage
exit
;;
*)
break
;;
esac
done
# :command.command_filter
action="stop"
# :command.parse_requirements_while
while [[ $# -gt 0 ]]; do
key="$1"
case "$key" in
-?*)
printf "invalid option: %s\n" "$key" >&2
exit 1
;;
*)
# :command.parse_requirements_case
# :command.parse_requirements_case_simple
# :argument.case
if [[ -z ${args['program']+x} ]]; then
args['program']=$1
shift
else
printf "invalid argument: %s\n" "$key" >&2
exit 1
fi
;;
esac
done
# :command.default_assignments
[[ -n ${args['program']:-} ]] || args['program']="*"
}
# :command.parse_requirements
autostart_manage_kill_parse_requirements() {
# :command.fixed_flags_filter
while [[ $# -gt 0 ]]; do
case "${1:-}" in
--help | -h)
long_usage=yes
autostart_manage_kill_usage
exit
;;
*)
break
;;
esac
done
# :command.command_filter
action="kill"
# :command.parse_requirements_while
while [[ $# -gt 0 ]]; do
key="$1"
case "$key" in
-?*)
printf "invalid option: %s\n" "$key" >&2
exit 1
;;
*)
# :command.parse_requirements_case
# :command.parse_requirements_case_simple
# :argument.case
if [[ -z ${args['program']+x} ]]; then
args['program']=$1
shift
else
printf "invalid argument: %s\n" "$key" >&2
exit 1
fi
;;
esac
done
# :command.required_args_filter
if [[ -z ${args['program']+x} ]]; then
printf "missing required argument: PROGRAM\nusage: autostart-manage kill PROGRAM\n" >&2
exit 1
fi
}
# :command.parse_requirements
autostart_manage_log_parse_requirements() {
# :command.fixed_flags_filter
while [[ $# -gt 0 ]]; do
case "${1:-}" in
--help | -h)
long_usage=yes
autostart_manage_log_usage
exit
;;
*)
break
;;
esac
done
# :command.command_filter
action="log"
# :command.parse_requirements_while
while [[ $# -gt 0 ]]; do
key="$1"
case "$key" in
-?*)
printf "invalid option: %s\n" "$key" >&2
exit 1
;;
*)
# :command.parse_requirements_case
# :command.parse_requirements_case_simple
# :argument.case
if [[ -z ${args['program']+x} ]]; then
args['program']=$1
shift
else
printf "invalid argument: %s\n" "$key" >&2
exit 1
fi
;;
esac
done
# :command.required_args_filter
if [[ -z ${args['program']+x} ]]; then
printf "missing required argument: PROGRAM\nusage: autostart-manage log PROGRAM\n" >&2
exit 1
fi
}
# :command.parse_requirements
autostart_manage_exec_parse_requirements() {
# :command.fixed_flags_filter
while [[ $# -gt 0 ]]; do
case "${1:-}" in
--help | -h)
long_usage=yes
autostart_manage_exec_usage
exit
;;
*)
break
;;
esac
done
# :command.command_filter
action="exec"
# :command.parse_requirements_while
while [[ $# -gt 0 ]]; do
key="$1"
case "$key" in
-?*)
printf "invalid option: %s\n" "$key" >&2
exit 1
;;
*)
# :command.parse_requirements_case
# :command.parse_requirements_case_simple
# :argument.case
if [[ -z ${args['program']+x} ]]; then
args['program']=$1
shift
else
printf "invalid argument: %s\n" "$key" >&2
exit 1
fi
;;
esac
done
# :command.required_args_filter
if [[ -z ${args['program']+x} ]]; then
printf "missing required argument: PROGRAM\nusage: autostart-manage exec PROGRAM\n" >&2
exit 1
fi
}
# :command.parse_requirements
autostart_manage_run_parse_requirements() {
# :command.fixed_flags_filter
while [[ $# -gt 0 ]]; do
case "${1:-}" in
--help | -h)
long_usage=yes
autostart_manage_run_usage
exit
;;
*)
break
;;
esac
done
# :command.command_filter
action="run"
# :command.parse_requirements_while
while [[ $# -gt 0 ]]; do
key="$1"
case "$key" in
-?*)
printf "invalid option: %s\n" "$key" >&2
exit 1
;;
*)
# :command.parse_requirements_case
# :command.parse_requirements_case_simple
printf "invalid argument: %s\n" "$key" >&2
exit 1
;;
esac
done
}
# :command.parse_requirements
autostart_manage_run_wayland_parse_requirements() {
# :command.fixed_flags_filter
while [[ $# -gt 0 ]]; do
case "${1:-}" in
--help | -h)
long_usage=yes
autostart_manage_run_wayland_usage
exit
;;
*)
break
;;
esac
done
# :command.command_filter
action="run-wayland"
# :command.parse_requirements_while
while [[ $# -gt 0 ]]; do
key="$1"
case "$key" in
-?*)
printf "invalid option: %s\n" "$key" >&2
exit 1
;;
*)
# :command.parse_requirements_case
# :command.parse_requirements_case_simple
printf "invalid argument: %s\n" "$key" >&2
exit 1
;;
esac
done
}
# :command.parse_requirements
autostart_manage_run_xorg_parse_requirements() {
# :command.fixed_flags_filter
while [[ $# -gt 0 ]]; do
case "${1:-}" in
--help | -h)
long_usage=yes
autostart_manage_run_xorg_usage
exit
;;
*)
break
;;
esac
done
# :command.command_filter
action="run-xorg"
# :command.parse_requirements_while
while [[ $# -gt 0 ]]; do
key="$1"
case "$key" in
-?*)
printf "invalid option: %s\n" "$key" >&2
exit 1
;;
*)
# :command.parse_requirements_case
# :command.parse_requirements_case_simple
printf "invalid argument: %s\n" "$key" >&2
exit 1
;;
esac
done
}
# :command.user_hooks
before_hook() {
# autostart-manage/before.sh
#!/usr/bin/env bash
service_file="$HOME/.config/systemd/user/autostart@.service"
if [ ! -f "$service_file" ]; then
_deploy_service_file "$service_file"
fi
target_file="$HOME/.config/systemd/user/autostart.target"
if [ ! -f "$target_file" ]; then
_deploy_target_file "$target_file"
fi
}
# :command.initialize
initialize() {
version="0.1.3"
long_usage=''
set -euo pipefail
}
# :command.run
run() {
declare -A args=()
declare -A deps=()
declare -a other_args=()
declare -a env_var_names=()
declare -a input=()
normalize_input "$@"
parse_requirements "${input[@]}"
before_hook
case "$action" in
"completions") autostart_manage_completions_command ;;
"list") autostart_manage_list_command ;;
"info") autostart_manage_info_command ;;
"sync") autostart_manage_sync_command ;;
"enable") autostart_manage_enable_command ;;
"disable") autostart_manage_disable_command ;;
"restart") autostart_manage_restart_command ;;
"start") autostart_manage_start_command ;;
"status") autostart_manage_status_command ;;
"stop") autostart_manage_stop_command ;;
"kill") autostart_manage_kill_command ;;
"log") autostart_manage_log_command ;;
"exec") autostart_manage_exec_command ;;
"run") autostart_manage_run_command ;;
"run-wayland") autostart_manage_run_wayland_command ;;
"run-xorg") autostart_manage_run_xorg_command ;;
esac
}
initialize
run "$@"