aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorShohei YOSHIDA <syohex@gmail.com>2023-09-13 14:41:03 +0900
committerShohei YOSHIDA <syohex@gmail.com>2023-09-13 14:41:03 +0900
commit6cbfc1b94295fa918821e1e452ffba700f17f517 (patch)
treea5f273564e81485484fa618aefe49b2c13f92f20 /src
parentMerge pull request #1041 from zsh-users/refactor-port (diff)
downloadzsh-completions-6cbfc1b94295fa918821e1e452ffba700f17f517.tar
zsh-completions-6cbfc1b94295fa918821e1e452ffba700f17f517.tar.gz
zsh-completions-6cbfc1b94295fa918821e1e452ffba700f17f517.tar.bz2
zsh-completions-6cbfc1b94295fa918821e1e452ffba700f17f517.tar.lz
zsh-completions-6cbfc1b94295fa918821e1e452ffba700f17f517.tar.xz
zsh-completions-6cbfc1b94295fa918821e1e452ffba700f17f517.tar.zst
zsh-completions-6cbfc1b94295fa918821e1e452ffba700f17f517.zip
Update fwupdmgr completion to 1.8.12
- Add new options and remove obsoleted options - Fix broken device ID completions - Simplify code
Diffstat (limited to 'src')
-rw-r--r--src/_fwupdmgr280
1 files changed, 83 insertions, 197 deletions
diff --git a/src/_fwupdmgr b/src/_fwupdmgr
index 5edcbf7..f02280f 100644
--- a/src/_fwupdmgr
+++ b/src/_fwupdmgr
@@ -3,21 +3,21 @@
# Description
# -----------
#
-# Completion script for fwupdmgr 1.2.9 (https://github.com/hughsie/fwupd).
+# Completion script for fwupdmgr 1.8.12 (https://github.com/hughsie/fwupd).
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Julien Nicoulaud <julien.nicoulaud@gmail.com>
+# * Shohei Yoshida (https://github.com/syohex)
#
# ------------------------------------------------------------------------------
-
_fwupdmgr() {
-
local context state state_descr line
typeset -A opt_args
+ local ret=1
_arguments -C \
'(- : *)'{-h,--help}'[display help information]' \
@@ -26,14 +26,22 @@ _fwupdmgr() {
--offline'[schedule installation for next reboot when possible]' \
--allow-reinstall'[allow re-installing existing firmware versions]' \
--allow-older'[allow downgrading firmware versions]' \
+ --allow-branch-switch'[allow switching firmware branch]' \
--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-safety-check'[do not perform device safety checks]' \
+ --no-device-prompt'[do not prompt for devices]' \
--no-history'[do not write to the history database]' \
- --show-all-devices'[show devices that are not updatable]' \
+ --show-all'[show all results]' \
+ --disable-ssl-strict'[ignore SSL strict checks when downloading files]' \
+ --ipfs'[only use IPFS when downloading files]' \
+ --filter'[filter with a set of device flags using a ~ prefix to exclude]:filter' \
+ --json'[output in JSON format]' \
+ --no-authenticate'[do not prompt for authentication]' \
'(-): :->command' \
'(-)*:: :->arguments' \
&& ret=0
@@ -43,44 +51,99 @@ _fwupdmgr() {
_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
+ case $words[1] in
+ (activate|downgrade|emulation-tag|emulation-untag|get-releases|get-updates|reinstall|update|verify|verify-update)
+ _arguments \
+ '1::device_id or GUID:_fwupdmgr_device_ids' \
+ && ret=0
+ ;;
+ (clear-results|get-results|unlock)
+ _arguments \
+ '1:device_id or GUID:_fwupdmgr_device_ids' \
+ && ret=0
+ ;;
+ (device-emulate|device-test|emulation-load|emulation-save|get-details|set-approved-firmware)
+ _arguments \
+ '*::files:_files' \
+ && ret=0
+ ;;
+ (disable-remote|modify-remote)
+ _arguments \
+ '1:remote ID:_fwupdmgr_remote_ids' \
+ && ret=0
+ ;;
+ (install)
+ _arguments \
+ '1:device_id or GUID:_fwupdmgr_device_ids' \
+ '2:version' \
+ && ret=0
+ ;;
+ (local-install)
+ _arguments \
+ '1:file:_files' \
+ '2:device_id or GUID:_fwupdmgr_device_ids' \
+ && ret=0
+ ;;
+ (refresh)
+ _arguments \
+ '1:file or remote ID:_alternative _files _fwupdmgr_remote_ids' \
+ && ret=0
+ ;;
+ (switch-branch)
+ _arguments \
+ '1:device_id or GUID:_fwupdmgr_device_ids' \
+ '2:branch' \
+ && ret=0
+ ;;
+ esac
;;
esac
+
+ return ret
}
(( $+functions[_fwupdmgr_commands] )) ||
_fwupdmgr_commands() {
- local commands=(
+ local -a commands=(
'activate:activate devices'
- 'clear-history:erase all firmware update history'
- 'clear-offline:clears any updates scheduled to be updated offline'
+ 'block-firmware:blocks a specific firmware from being installed'
'clear-results:clears the results from the last update'
+ 'device-emulate:emulate a device using a JSON manifest'
+ 'device-test:test a device using a JSON manifest'
'disable-remote:disables a given remote'
'downgrade:downgrades the firmware on a device'
+ 'emulation-load:load device emulation data'
+ 'emulation-save:save device emulation data'
+ 'emulation-tag:adds devices to watch for future emulation'
+ 'emulation-untag:removes devices to watch for future emulation'
'enable-remote:enables a given remote'
'get-approved-firmware:gets the list of approved firmware'
+ 'get-bios-settings:retrieve BIOS settings'
+ 'get-blocked-firmware:gets the list of blocked 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-plugins:get all enabled plugins registered with the system'
'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'
+ 'inhibit:inhibit the system to prevent upgrades'
'install:install a firmware file on this hardware'
+ 'local-install:install a firmware file on this hardware'
'modify-config:modifies a daemon configuration value'
'modify-remote:modifies a given remote'
+ 'quit:asks the daemon to quit'
'refresh:refresh metadata from remote server'
+ 'security:gets the host security attributes'
'report-history:share firmware history with the developers'
'set-approved-firmware:sets the list of approved firmware'
+ 'set-bios-setting:sets one or more BIOS settings'
+ 'switch-branch:switch the firmware branch on device'
+ 'sync-bkc:sync firmware versions to the host best known configuration '
+ 'unblock-firmware:unblocks a specific firmware from being installed'
+ 'uninhibit:uninhibit the system to allow upgrades'
'unlock:unlocks the device for firmware access'
'update:updates all firmware to latest versions available'
'verify:gets the cryptographic hash of the dumped firmware'
@@ -89,199 +152,22 @@ _fwupdmgr_commands() {
_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(.*)'))
+ local -a devices
+ devices=($(_call_program devices fwupdmgr get-devices | awk '/Device ID/||/DeviceId/{print $NF}'))
_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(.*)'))
+ local -a remotes
+ remotes=($(_call_program remotes fwupdmgr get-remotes | awk '/Remote ID/{print $NF}'))
_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: