mirror of
https://git.proxmox.com/git/fwupd
synced 2025-06-06 00:37:53 +00:00
183 lines
3.1 KiB
Plaintext
183 lines
3.1 KiB
Plaintext
_fwupdtool_cmd_list=(
|
|
'activate'
|
|
'build-firmware'
|
|
'clear-history'
|
|
'esp-list'
|
|
'esp-mount'
|
|
'esp-unmount'
|
|
'firmware-build'
|
|
'firmware-convert'
|
|
'firmware-export'
|
|
'firmware-extract'
|
|
'firmware-parse'
|
|
'firmware-sign'
|
|
'firmware-patch'
|
|
'get-bios-setting'
|
|
'get-updates'
|
|
'get-upgrades'
|
|
'get-details'
|
|
'get-firmware-types'
|
|
'get-device-flags'
|
|
'get-devices'
|
|
'get-history'
|
|
'get-plugins'
|
|
'get-remotes'
|
|
'get-report-metadata'
|
|
'get-topology'
|
|
'hwids'
|
|
'update'
|
|
'upgrade'
|
|
'install'
|
|
'install-blob'
|
|
'monitor'
|
|
'reinstall'
|
|
'security'
|
|
'set-bios-setting'
|
|
'switch-branch'
|
|
'self-sign'
|
|
'smbios-dump'
|
|
'attach'
|
|
'detach'
|
|
'firmware-dump'
|
|
'firmware-read'
|
|
'refresh'
|
|
'verify-update'
|
|
'watch'
|
|
'unbind-driver'
|
|
'bind-driver'
|
|
'export-hwids'
|
|
)
|
|
|
|
_fwupdtool_opts=(
|
|
'--verbose'
|
|
'--allow-reinstall'
|
|
'--allow-older'
|
|
'--force'
|
|
'--show-all'
|
|
'--plugins'
|
|
'--prepare'
|
|
'--cleanup'
|
|
'--filter'
|
|
'--method'
|
|
'--disable-ssl-strict'
|
|
'--no-safety-check'
|
|
'--no-search'
|
|
'--ignore-checksum'
|
|
'--ignore-vid-pid'
|
|
'--save-backends'
|
|
)
|
|
|
|
_show_filters()
|
|
{
|
|
local flags
|
|
flags="$(command fwupdtool get-device-flags 2>/dev/null)"
|
|
COMPREPLY+=( $(compgen -W "${flags}" -- "$cur") )
|
|
}
|
|
|
|
_show_firmware_types()
|
|
{
|
|
local firmware_types
|
|
firmware_types="$(command fwupdtool get-firmware-types 2>/dev/null)"
|
|
COMPREPLY+=( $(compgen -W "${firmware_types}" -- "$cur") )
|
|
}
|
|
|
|
_show_device_ids()
|
|
{
|
|
if ! command -v jq &> /dev/null; then
|
|
return 0
|
|
fi
|
|
local description
|
|
description="$(command jq '.Devices | .[] | .DeviceId' @localstatedir@/cache/fwupd/devices.json 2>/dev/null)"
|
|
COMPREPLY+=( $(compgen -W "${description}" -- "$cur") )
|
|
}
|
|
|
|
_show_plugins()
|
|
{
|
|
if ! command -v jq &> /dev/null; then
|
|
return 0
|
|
fi
|
|
local plugins
|
|
plugins="$(command fwupdtool get-plugins --json 2>/dev/null | jq '.Plugins | .[] | .Name')"
|
|
COMPREPLY+=( $(compgen -W "${plugins}" -- "$cur") )
|
|
}
|
|
|
|
_show_modifiers()
|
|
{
|
|
COMPREPLY+=( $(compgen -W '${_fwupdtool_opts[@]}' -- "$cur") )
|
|
}
|
|
|
|
_fwupdtool()
|
|
{
|
|
local cur prev command arg args
|
|
COMPREPLY=()
|
|
_get_comp_words_by_ref cur prev
|
|
_get_first_arg
|
|
_count_args
|
|
|
|
case $prev in
|
|
--plugins)
|
|
_show_plugins
|
|
return 0
|
|
;;
|
|
--filter)
|
|
_show_filters
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
case $arg in
|
|
get-details|install|install-blob|firmware-dump|firmware-read)
|
|
#find files
|
|
if [[ "$args" = "2" ]]; then
|
|
_filedir
|
|
#device ID
|
|
elif [[ "$args" = "3" ]]; then
|
|
_show_device_ids
|
|
fi
|
|
;;
|
|
attach|detach|activate|verify-update|reinstall|get-updates)
|
|
#device ID
|
|
if [[ "$args" = "2" ]]; then
|
|
_show_device_ids
|
|
fi
|
|
;;
|
|
firmware-parse|firmware-patch)
|
|
#find files
|
|
if [[ "$args" = "2" ]]; then
|
|
_filedir
|
|
#firmware_type
|
|
elif [[ "$args" = "3" ]]; then
|
|
_show_firmware_types
|
|
fi
|
|
;;
|
|
firmware-convert)
|
|
#file in
|
|
if [[ "$args" = "2" ]]; then
|
|
_filedir
|
|
#file out
|
|
elif [[ "$args" = "3" ]]; then
|
|
_filedir
|
|
#firmware_type in
|
|
elif [[ "$args" = "4" ]]; then
|
|
_show_firmware_types
|
|
#firmware_type out
|
|
elif [[ "$args" = "5" ]]; then
|
|
_show_firmware_types
|
|
fi
|
|
;;
|
|
*)
|
|
#find first command
|
|
if [[ "$args" = "1" ]]; then
|
|
COMPREPLY=( $(compgen -W '${_fwupdtool_cmd_list[@]}' -- "$cur") )
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
#modifiers
|
|
_show_modifiers
|
|
|
|
return 0
|
|
}
|
|
|
|
complete -F _fwupdtool fwupdtool
|