mirror of
https://git.proxmox.com/git/fwupd
synced 2025-05-15 03:23:18 +00:00

The HSI specification assigns a simple text ID to the current state of firmware security. As new vulnerabilities are found, and as protection measures are updated, new requirements will be added to the required firmware behaviours for each HSI value. The HSI specification is currently incomplete and in active development, and so the --force flag is required in all command line tools. The current ID value will probably change on a given platform so please do not start using the result for any kind of compliance requirements.
173 lines
3.0 KiB
Plaintext
173 lines
3.0 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-whitelist'
|
|
'--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-whitelist)
|
|
_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
|