fwupd/data/bash-completion/fwupdmgr.in
Mario Limonciello 6ebccf1e1e Remove support for --ignore-power by frontends
This functionality broke a number of releases ago as part of
implementing device inhibition and was just noticed now.

Instead of fixing it, the preference seems to be to remove the
functionality as it exists today as inhibitions can happen for
a number of reasons.

To still allow people to override these power warnings (such as during
development) add a new daemon configuration item that can be used.

Fixes: #3778
2021-09-21 13:13:52 -05:00

208 lines
3.8 KiB
Plaintext

_fwupdmgr_cmd_list=(
'activate'
'block-firmware'
'clear-history'
'clear-offline'
'clear-results'
'disable-remote'
'device-test'
'downgrade'
'download'
'enable-remote'
'get-approved-firmware'
'get-blocked-firmware'
'get-details'
'get-devices'
'get-history'
'get-releases'
'get-remotes'
'get-results'
'get-topology'
'get-updates'
'get-upgrades'
'get-plugins'
'install'
'modify-config'
'modify-remote'
'reinstall'
'refresh'
'report-history'
'security'
'set-approved-firmware'
'switch-branch'
'unlock'
'unblock-firmware'
'update'
'upgrade'
'verify'
'verify-update'
'--version'
)
_fwupdmgr_opts=(
'--verbose'
'--offline'
'--allow-reinstall'
'--allow-older'
'--allow-branch-switch'
'--force'
'--assume-yes'
'--no-history'
'--no-unreported-check'
'--no-metadata-check'
'--no-reboot-check'
'--no-safety-check'
'--no-remote-check'
'--show-all'
'--sign'
'--filter'
'--disable-ssl-strict'
'--ipfs'
'--json'
)
_show_filters()
{
local flags
flags="$(command @libexecdir@/fwupdtool get-device-flags 2>/dev/null)"
COMPREPLY+=( $(compgen -W "${flags}" -- "$cur") )
}
_show_modifiers()
{
COMPREPLY+=( $(compgen -W '${_fwupdmgr_opts[@]}' -- "$cur") )
}
_show_device_ids()
{
local description
OLDIFS=$IFS
IFS=$'\n'
description="$(command fwupdagent get-devices 2>/dev/null | sed -e 's,"Name" :,,; s,",,g; s,\,,,g; s,[[:space:]]\+,,' | command awk '!/DeviceId/ { line = $0 }; /DeviceId/ { print $3 " { "line" }"}')"
COMPREPLY+=( $(compgen -W "${description}" -- "$cur") )
IFS=$OLDIFS
}
_show_remotes()
{
local remotes
remotes="$(command fwupdmgr get-remotes | command awk '/Remote ID/ { print $4 }')"
COMPREPLY+=( $(compgen -W "${remotes}" -- "$cur") )
}
_fwupdmgr()
{
local cur prev command
COMPREPLY=()
cur=`_get_cword`
prev=${COMP_WORDS[COMP_CWORD-1]}
command=${COMP_WORDS[1]}
case $prev in
--filter)
_show_filters
return 0
;;
esac
case $command in
activate|clear-results|downgrade|get-releases|get-results|unlock|verify|verify-update|get-updates|switch-branch)
if [[ "$prev" = "$command" ]]; then
_show_device_ids
else
_show_modifiers
fi
;;
get-details)
#browse for file
if [[ "$prev" = "$command" ]]; then
_filedir
#modifiers
else
_show_modifiers
fi
;;
device-test)
#browse for files
if [[ "$prev" = "$command" ]]; then
_filedir
#modifiers
else
_show_modifiers
fi
;;
install)
#find files
if [[ "$prev" = "$command" ]]; then
_filedir
#device ID or modifiers
elif [[ "$prev" = "${COMP_WORDS[2]}" ]]; then
_show_device_ids
_show_modifiers
#modifiers
else
_show_modifiers
fi
;;
modify-remote)
#find remotes
if [[ "$prev" = "$command" ]]; then
_show_remotes
#add key
elif [[ "$prev" = "${COMP_WORDS[2]}" ]]; then
local keys
keys="$(command fwupdmgr get-remotes | command awk -v pattern="Remote ID:.*${prev}$" '$0~pattern{show=1; next}/Remote/{show=0}{gsub(/:.*/,"")}show')"
COMPREPLY+=( $(compgen -W "${keys}" -- "$cur") )
#modifiers
else
_show_modifiers
fi
;;
enable-remote)
#find remotes
if [[ "$prev" = "$command" ]]; then
_show_remotes
#modifiers
else
_show_modifiers
fi
;;
disable-remote)
#find remotes
if [[ "$prev" = "$command" ]]; then
_show_remotes
#modifiers
else
_show_modifiers
fi
;;
refresh)
#find first file
if [[ "$prev" = "$command" ]]; then
_filedir
#find second file
elif [[ "$prev" = "${COMP_WORDS[2]}" ]]; then
_filedir
#find remote ID
elif [[ "$prev" = "${COMP_WORDS[3]}" ]]; then
_show_remotes
else
_show_modifiers
fi
;;
*)
#find first command
if [[ ${COMP_CWORD} = 1 ]]; then
COMPREPLY=( $(compgen -W '${_fwupdmgr_cmd_list[@]}' -- "$cur") )
#modifiers for all commands
else
_show_modifiers
fi
;;
esac
return 0
}
complete -F _fwupdmgr fwupdmgr