add completion for fwupdmgr 1.2.9 (https://github.com/hughsie/fwupd)
This commit is contained in:
		
							parent
							
								
									d1c0b5d50d
								
							
						
					
					
						commit
						5b5e9fda12
					
				|  | @ -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 | ||||||
		Loading…
	
		Reference in New Issue