aboutsummaryrefslogtreecommitdiffstats
path: root/src/_fwupdmgr
diff options
context:
space:
mode:
authorJulien Nicoulaud <julien.nicoulaud@gmail.com>2019-05-26 19:09:03 +0200
committerJulien Nicoulaud <julien.nicoulaud@gmail.com>2019-05-26 19:09:03 +0200
commit5b5e9fda126788c71ee9f8b38aa4cfb08c8c3d8e (patch)
tree3c9cbcbd3e78685130187be2285f5ccb48b3bb6a /src/_fwupdmgr
parentadd completion for kitty 0.14.0 (https://sw.kovidgoyal.net/kitty) (diff)
downloadzsh-completions-5b5e9fda126788c71ee9f8b38aa4cfb08c8c3d8e.tar
zsh-completions-5b5e9fda126788c71ee9f8b38aa4cfb08c8c3d8e.tar.gz
zsh-completions-5b5e9fda126788c71ee9f8b38aa4cfb08c8c3d8e.tar.bz2
zsh-completions-5b5e9fda126788c71ee9f8b38aa4cfb08c8c3d8e.tar.lz
zsh-completions-5b5e9fda126788c71ee9f8b38aa4cfb08c8c3d8e.tar.xz
zsh-completions-5b5e9fda126788c71ee9f8b38aa4cfb08c8c3d8e.tar.zst
zsh-completions-5b5e9fda126788c71ee9f8b38aa4cfb08c8c3d8e.zip
add completion for fwupdmgr 1.2.9 (https://github.com/hughsie/fwupd)
Diffstat (limited to 'src/_fwupdmgr')
-rw-r--r--src/_fwupdmgr293
1 files changed, 293 insertions, 0 deletions
diff --git a/src/_fwupdmgr b/src/_fwupdmgr
new file mode 100644
index 0000000..5edcbf7
--- /dev/null
+++ b/src/_fwupdmgr
@@ -0,0 +1,293 @@
+#compdef fwupdmgr
+# ------------------------------------------------------------------------------
+# Description
+# -----------
+#
+# Completion script for fwupdmgr 1.2.9 (https://github.com/hughsie/fwupd).
+#
+# ------------------------------------------------------------------------------
+# Authors
+# -------
+#
+# * Julien Nicoulaud <julien.nicoulaud@gmail.com>
+#
+# ------------------------------------------------------------------------------
+
+
+_fwupdmgr() {
+
+ local context state state_descr line
+ typeset -A opt_args
+
+ _arguments -C \
+ '(- : *)'{-h,--help}'[display help information]' \
+ '(- : *)'{-v,--version}'[display version information]' \
+ {-v,--verbose}'[show extra debugging information]' \
+ --offline'[schedule installation for next reboot when possible]' \
+ --allow-reinstall'[allow re-installing existing firmware versions]' \
+ --allow-older'[allow downgrading firmware versions]' \
+ --force'[override warnings and force the action]' \
+ '(-y, --assume-yes)'{-y,--assume-yes}'[answer yes to all questions]' \
+ --sign'[sign the uploaded data with the client certificate]' \
+ --no-unreported-check'[do not check for unreported history]' \
+ --no-metadata-check'[do not check for old metadata]' \
+ --no-reboot-check'[do not check for reboot after update]' \
+ --no-history'[do not write to the history database]' \
+ --show-all-devices'[show devices that are not updatable]' \
+ '(-): :->command' \
+ '(-)*:: :->arguments' \
+ && ret=0
+
+ case $state in
+ (command)
+ _fwupdmgr_commands
+ ;;
+ (arguments)
+ curcontext=${curcontext%:*:*}:fwupdmgr-$words[1]:
+ if (( $+functions[_fwupdmgr_${words[1]}_args] )); then
+ _fwupdmgr_${words[1]}_args
+ else
+ _message "unknown command ${words[1]}" && ret=1
+ fi
+ ;;
+ (*)
+ _message "unknown state $state" && ret=1
+ ;;
+ esac
+}
+
+(( $+functions[_fwupdmgr_commands] )) ||
+_fwupdmgr_commands() {
+ local commands=(
+ 'activate:activate devices'
+ 'clear-history:erase all firmware update history'
+ 'clear-offline:clears any updates scheduled to be updated offline'
+ 'clear-results:clears the results from the last update'
+ 'disable-remote:disables a given remote'
+ 'downgrade:downgrades the firmware on a device'
+ 'enable-remote:enables a given remote'
+ 'get-approved-firmware:gets the list of approved firmware'
+ 'get-details:gets details about a firmware file'
+ 'get-devices:get all devices that support firmware updates'
+ 'get-history:show history of firmware updates'
+ 'get-releases:gets the releases for a device'
+ 'get-remotes:gets the configured remotes'
+ 'get-results:gets the results from the last update'
+ 'get-topology:get all devices according to the system topology'
+ 'get-updates:gets the list of updates for connected hardware'
+ 'install:install a firmware file on this hardware'
+ 'modify-config:modifies a daemon configuration value'
+ 'modify-remote:modifies a given remote'
+ 'refresh:refresh metadata from remote server'
+ 'report-history:share firmware history with the developers'
+ 'set-approved-firmware:sets the list of approved firmware'
+ 'unlock:unlocks the device for firmware access'
+ 'update:updates all firmware to latest versions available'
+ 'verify:gets the cryptographic hash of the dumped firmware'
+ 'verify-update:update the stored metadata with current ROM contents'
+ )
+ _describe -t commands commands commands
+}
+
+(( $+functions[_fwupdmgr_activate_args] )) ||
+_fwupdmgr_activate_args() {
+ _arguments -C \
+ '1: :_fwupdmgr_device_ids'
+}
+
+(( $+functions[_fwupdmgr_clear-history_args] )) ||
+_fwupdmgr_clear-history_args() {
+ _message 'no more arguments' && ret=0
+}
+
+(( $+functions[_fwupdmgr_clear-results_args] )) ||
+_fwupdmgr_clear-results_args() {
+ _arguments -C \
+ '1: :_fwupdmgr_device_ids'
+}
+
+(( $+functions[_fwupdmgr_disable-remote_args] )) ||
+_fwupdmgr_disable-remote_args() {
+ _arguments -C \
+ '1: :_fwupdmgr_remote_ids'
+}
+
+(( $+functions[_fwupdmgr_downgrade_args] )) ||
+_fwupdmgr_downgrade_args() {
+ _arguments -C \
+ '1: :_fwupdmgr_device_ids'
+}
+
+(( $+functions[_fwupdmgr_enable-remote_args] )) ||
+_fwupdmgr_enable-remote_args() {
+ _arguments -C \
+ '1: :_fwupdmgr_remote_ids'
+}
+
+(( $+functions[_fwupdmgr_get-approved-firmware_args] )) ||
+_fwupdmgr_get-approved-firmware_args() {
+ _message 'no more arguments' && ret=0
+}
+
+(( $+functions[_fwupdmgr_get-details_args] )) ||
+_fwupdmgr_get-details_args() {
+ _files
+}
+
+(( $+functions[_fwupdmgr_get-devices_args] )) ||
+_fwupdmgr_get-devices_args() {
+ _message 'no more arguments' && ret=0
+}
+
+(( $+functions[_fwupdmgr_get-history_args] )) ||
+_fwupdmgr_get-history_args() {
+ _message 'no more arguments' && ret=0
+}
+
+(( $+functions[_fwupdmgr_get-releases_args] )) ||
+_fwupdmgr_get-releases_args() {
+ _arguments -C \
+ '1: :_fwupdmgr_device_ids'
+}
+
+(( $+functions[_fwupdmgr_get-remotes_args] )) ||
+_fwupdmgr_get-remotes_args() {
+ _message 'no more arguments' && ret=0
+}
+
+(( $+functions[_fwupdmgr_get-results_args] )) ||
+_fwupdmgr_get-results_args() {
+ _arguments -C \
+ '1: :_fwupdmgr_device_ids'
+}
+
+(( $+functions[_fwupdmgr_get-topology_args] )) ||
+_fwupdmgr_get-topology_args() {
+ _message 'no more arguments' && ret=0
+}
+
+(( $+functions[_fwupdmgr_get-updates_args] )) ||
+_fwupdmgr_get-updates_args() {
+ _message 'no more arguments' && ret=0
+}
+
+(( $+functions[_fwupdmgr_install_args] )) ||
+_fwupdmgr_install_args() {
+ _arguments -C \
+ '1: :_files' \
+ '2: :_fwupdmgr_device_ids'
+}
+
+(( $+functions[_fwupdmgr_TODO_args] )) ||
+_fwupdmgr_TODO_args() {
+ _message 'no more arguments' && ret=0
+}
+
+(( $+functions[_fwupdmgr_modify-config_args] )) ||
+_fwupdmgr_modify-config_args() {
+ local ret=1
+ if compset -P '*,'; then
+ _wanted config-value expl 'config value' _fwupdmgr_config_values ${IPREFIX%=} && ret=0
+ else
+ _wanted config-key expl 'config key' _fwupdmgr_config_keys -qS, && ret=0
+ fi
+ return ret
+}
+
+(( $+functions[_fwupdmgr_modify-remote_args] )) ||
+_fwupdmgr_modify-remote_args() {
+ _arguments -C \
+ '1: :_fwupdmgr_remote_ids' \
+ '2: :_fwupdmgr_remote_keys' \
+ '3: :_fwupdmgr_remote_values'
+}
+
+(( $+functions[_fwupdmgr_refresh_args] )) ||
+_fwupdmgr_refresh_args() {
+ _arguments -C \
+ '1: :_files' \
+ '2:file signature:' \
+ '3: :_fwupdmgr_remote_ids'
+}
+
+(( $+functions[_fwupdmgr_report-history_args] )) ||
+_fwupdmgr_report-history_args() {
+ _message 'no more arguments' && ret=0
+}
+
+(( $+functions[_fwupdmgr_set-approved-firmware_args] )) ||
+_fwupdmgr_set-approved-firmware_args() {
+ _message 'checksum' && ret=0
+}
+
+(( $+functions[_fwupdmgr_unlock_args] )) ||
+_fwupdmgr_unlock_args() {
+ _arguments -C \
+ '1: :_fwupdmgr_device_ids'
+}
+
+(( $+functions[_fwupdmgr_update_args] )) ||
+_fwupdmgr_update_args() {
+ _message 'no more arguments' && ret=0
+}
+
+(( $+functions[_fwupdmgr_verify_args] )) ||
+_fwupdmgr_verify_args() {
+ _arguments -C \
+ '1: :_fwupdmgr_device_ids'
+}
+
+(( $+functions[_fwupdmgr_verify-update_args] )) ||
+_fwupdmgr_verify-update_args() {
+ _arguments -C \
+ '1: :_fwupdmgr_device_ids'
+}
+
+(( $+functions[_fwupdmgr_device_ids] )) ||
+_fwupdmgr_device_ids() {
+ # TODO add device name as description
+ local devices=($(_call_program devices fwupdmgr get-devices | grep -Po 'DeviceId:\s+\K(.*)'))
+ _describe -t devices 'device ID' devices
+}
+
+(( $+functions[_fwupdmgr_remote_ids] )) ||
+_fwupdmgr_remote_ids() {
+ # TODO add remote description
+ local remotes=($(_call_program remotes fwupdmgr get-remotes | grep -Po 'Remote ID:\s+\K(.*)'))
+ _describe -t remotes 'remote ID' remotes
+}
+
+(( $+functions[_fwupdmgr_checksums] )) ||
+_fwupdmgr_checksums() {
+ _guard '[^\-]#' 'checksum'
+}
+
+(( $+functions[_fwupdmgr_config_keys] )) ||
+_fwupdmgr_config_keys() {
+ _guard '[^\-]#' 'config key'
+}
+
+(( $+functions[_fwupdmgr_config_values] )) ||
+_fwupdmgr_config_values() {
+ _guard '[^\-]#' 'config value'
+}
+
+(( $+functions[_fwupdmgr_remote_keys] )) ||
+_fwupdmgr_remote_keys() {
+ _guard '[^\-]#' 'remote key'
+}
+
+(( $+functions[_fwupdmgr_remote_values] )) ||
+_fwupdmgr_remote_values() {
+ _guard '[^\-]#' 'remote value'
+}
+
+_fwupdmgr "$@"
+
+# Local Variables:
+# mode: Shell-Script
+# sh-indentation: 2
+# indent-tabs-mode: nil
+# sh-basic-offset: 2
+# End:
+# vim: ft=zsh sw=2 ts=2 et