fwupd/data/bash-completion/fwupdtool

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