mirror of
https://git.proxmox.com/git/fwupd
synced 2025-05-14 20:00:23 +00:00

Red Hat wants to drive an initiative in correcting problematic and potentially divisive language in open source projects. These naming conventions and descriptive phrases are hurtful and offensive to many of our colleagues across the open source universe. See https://www.redhat.com/en/blog/making-open-source-more-inclusive-eradicating-problematic-language
173 lines
2.9 KiB
Plaintext
173 lines
2.9 KiB
Plaintext
_fwupdtool_cmd_list=(
|
|
'activate'
|
|
'build-firmware'
|
|
'firmware-convert'
|
|
'firmware-parse'
|
|
'get-updates'
|
|
'get-upgrades'
|
|
'get-details'
|
|
'get-firmware-types'
|
|
'get-device-flags'
|
|
'get-devices'
|
|
'get-history'
|
|
'get-plugins'
|
|
'get-remotes'
|
|
'get-topology'
|
|
'hwids'
|
|
'update'
|
|
'upgrade'
|
|
'install'
|
|
'install-blob'
|
|
'monitor'
|
|
'reinstall'
|
|
'security'
|
|
'self-sign'
|
|
'smbios-dump'
|
|
'attach'
|
|
'detach'
|
|
'firmware-read'
|
|
'refresh'
|
|
'verify-update'
|
|
'watch'
|
|
)
|
|
|
|
_fwupdtool_opts=(
|
|
'--verbose'
|
|
'--enable-json-state'
|
|
'--allow-reinstall'
|
|
'--allow-older'
|
|
'--force'
|
|
'--show-all-devices'
|
|
'--plugin-enable'
|
|
'--prepare'
|
|
'--cleanup'
|
|
'--filter'
|
|
'--disable-ssl-strict'
|
|
'--no-safety-check'
|
|
)
|
|
|
|
_show_filters()
|
|
{
|
|
local flags
|
|
flags="$(command @libexecdir@/fwupdtool get-device-flags 2>/dev/null)"
|
|
COMPREPLY+=( $(compgen -W "${flags}" -- "$cur") )
|
|
}
|
|
|
|
_show_firmware_types()
|
|
{
|
|
local firmware_types
|
|
firmware_types="$(command @libexecdir@/fwupdtool get-firmware-types 2>/dev/null)"
|
|
COMPREPLY+=( $(compgen -W "${firmware_types}" -- "$cur") )
|
|
}
|
|
|
|
|
|
_show_plugins()
|
|
{
|
|
local plugins
|
|
plugins="$(command @libexecdir@/fwupdtool get-plugins 2>/dev/null)"
|
|
COMPREPLY+=( $(compgen -W "${plugins}" -- "$cur") )
|
|
}
|
|
|
|
_show_modifiers()
|
|
{
|
|
COMPREPLY+=( $(compgen -W '${_fwupdtool_opts[@]}' -- "$cur") )
|
|
}
|
|
|
|
_fwupdtool()
|
|
{
|
|
local cur prev command
|
|
COMPREPLY=()
|
|
cur=`_get_cword`
|
|
prev=${COMP_WORDS[COMP_CWORD-1]}
|
|
command=${COMP_WORDS[1]}
|
|
|
|
case $prev in
|
|
--plugin-enable)
|
|
_show_plugins
|
|
return 0
|
|
;;
|
|
--filter)
|
|
_show_filters
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
case $command in
|
|
get-details|install|install-blob|firmware-read)
|
|
#find files
|
|
if [[ "$prev" = "$command" ]]; then
|
|
_filedir
|
|
#modifiers
|
|
else
|
|
_show_modifiers
|
|
fi
|
|
;;
|
|
attach|detach|activate|verify-update|reinstall)
|
|
if [[ "$prev" = "$command" ]]; then
|
|
_show_device_ids
|
|
#modifiers
|
|
else
|
|
_show_modifiers
|
|
fi
|
|
;;
|
|
build-firmware)
|
|
#file in
|
|
if [[ "$prev" = "$command" ]]; then
|
|
_filedir
|
|
#file out
|
|
elif [[ "$prev" = "${COMP_WORDS[2]}" ]]; then
|
|
_filedir
|
|
#script
|
|
elif [[ "$prev" = "${COMP_WORDS[3]}" ]]; then
|
|
_filedir
|
|
#output
|
|
elif [[ "$prev" = "${COMP_WORDS[4]}" ]]; then
|
|
_filedir
|
|
else
|
|
_show_modifiers
|
|
fi
|
|
;;
|
|
firmware-parse)
|
|
#find files
|
|
if [[ "$prev" = "$command" ]]; then
|
|
_filedir
|
|
#firmware_type
|
|
elif [[ "$prev" = "${COMP_WORDS[2]}" ]]; then
|
|
_show_firmware_types
|
|
else
|
|
_show_modifiers
|
|
fi
|
|
;;
|
|
firmware-convert)
|
|
#file in
|
|
if [[ "$prev" = "$command" ]]; then
|
|
_filedir
|
|
#file out
|
|
elif [[ "$prev" = "${COMP_WORDS[2]}" ]]; then
|
|
_filedir
|
|
#firmware_type in
|
|
elif [[ "$prev" = "${COMP_WORDS[3]}" ]]; then
|
|
_show_firmware_types
|
|
#firmware_type out
|
|
elif [[ "$prev" = "${COMP_WORDS[4]}" ]]; then
|
|
_show_firmware_types
|
|
else
|
|
_show_modifiers
|
|
fi
|
|
;;
|
|
*)
|
|
#find first command
|
|
if [[ ${COMP_CWORD} = 1 ]]; then
|
|
COMPREPLY=( $(compgen -W '${_fwupdtool_cmd_list[@]}' -- "$cur") )
|
|
#modifiers for all commands
|
|
else
|
|
_show_modifiers
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
return 0
|
|
}
|
|
|
|
complete -F _fwupdtool fwupdtool
|