_bootctl revision 51d0f1c9f6a378f3bf11179e5794dc2c13b49644
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen#compdef bootctl
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen(( $+functions[_bootctl_command] )) || _bootctl_command()
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen{
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen local -a _bootctl_cmds
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen _bootctl_cmds=(
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen "status:Show current firmware and boot settings"
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen )
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen if (( CURRENT == 1 )); then
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen _describe -t commands 'bootctl command' _bootctl_cmds || compadd "$@"
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen else
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen local curcontext="$curcontext"
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen cmd="${${_bootctl_cmds[(r)$words[1]:*]%%:*}}"
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen if (( $+functions[_bootctl_$cmd] )); then
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen _bootctl_$cmd
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen else
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen _message "no more options"
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen fi
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen fi
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen}
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen_arguments \
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen {-h,--help}'[Prints a short help text and exits.]' \
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen '--version[Prints a short version string and exits.]' \
51d0f1c9f6a378f3bf11179e5794dc2c13b49644Marko Myllynen '*::bootctl command:_bootctl_command'