%PDF- %PDF-
Direktori : /usr/share/bash-completion/completions/ |
Current File : //usr/share/bash-completion/completions/fwupdmgr |
_fwupdmgr_cmd_list=( 'activate' 'block-firmware' 'clear-results' 'disable-remote' 'device-test' 'device-emulate' 'device-wait' 'downgrade' 'download' 'enable-remote' 'emulation-tag' 'emulation-untag' 'emulation-load' 'emulation-save' 'get-approved-firmware' 'get-bios-setting' 'get-blocked-firmware' 'get-details' 'get-devices' 'get-history' 'get-plugins' 'get-releases' 'get-remotes' 'get-results' 'get-topology' 'get-updates' 'get-upgrades' 'get-plugins' 'inhibit' 'uninhibit' 'install' 'local-install' 'modify-config' 'modify-remote' 'quit' 'reinstall' 'refresh' 'report-history' 'report-export' 'security' 'security-fix' 'security-undo' 'set-approved-firmware' 'set-bios-setting' 'switch-branch' 'sync' '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' '--no-security-fix' '--show-all' '--sign' '--filter' '--filter-release' '--disable-ssl-strict' '--p2p' '--json' ) bios_get_opts=( '--no-authenticate' '--json' '--verbose' ) bios_set_opts=( '--no-reboot-check' '--json' '--verbose' ) modify_config_opts=( 'ArchiveSizeMax' 'AllowEmulation' 'ApprovedFirmware' 'BlockedFirmware' 'DisabledDevices' 'DisabledPlugins' 'EspLocation' 'EnumerateAllDevices' 'HostBkc' 'IdleTimeout' 'IgnorePower' 'OnlyTrusted' 'P2pPolicy' 'ReleaseDedupe' 'ReleasePriority' 'ShowDevicePrivate' 'TestDevices' 'TrustedReports' 'TrustedUids' 'UpdateMotd' 'UriSchemes' 'VerboseDomains' ) _show_file_in_dir() { local files files="$(ls 2>/dev/null)" COMPREPLY+=( $(compgen -W "${files}" -- "$cur") ) } _show_bios_get_modifiers() { COMPREPLY+=( $(compgen -W '${bios_get_opts[@]}' -- "$cur") ) } _show_bios_set_modifiers() { COMPREPLY+=( $(compgen -W '${bios_set_opts[@]}' -- "$cur") ) } _show_filters() { local flags flags="$(command fwupdtool get-device-flags 2>/dev/null)" COMPREPLY+=( $(compgen -W "${flags}" -- "$cur") ) } _show_modifiers() { COMPREPLY+=( $(compgen -W '${_fwupdmgr_opts[@]}' -- "$cur") ) } _show_bios_settings() { if ! command -v jq &> /dev/null; then return 0 fi local attr attr="$(command fwupdmgr get-bios-setting --json --no-authenticate 2>/dev/null | jq '.BiosSettings | .[] | .Name')" COMPREPLY+=( $(compgen -W "${attr}" -- "$cur") ) } _show_bios_settings_possible() { if ! command -v jq &> /dev/null; then return 0 fi local attr attr="$(command fwupdmgr get-bios-setting "$1" --json --no-authenticate 2>/dev/null | jq '.BiosSettings | .[] | .BiosSettingPossibleValues | .[]')" COMPREPLY+=( $(compgen -W "${attr}" -- "$cur") ) } _show_device_ids() { if ! command -v jq &> /dev/null; then return 0 fi local description description="$(command fwupdmgr get-devices --json 2>/dev/null | jq '.Devices | .[] | .DeviceId')" COMPREPLY+=( $(compgen -W "${description}" -- "$cur") ) } _show_plugins() { if ! command -v jq &> /dev/null; then return 0 fi local plugins plugins="$(command fwupdmgr get-plugins --json 2>/dev/null | jq '.Plugins | .[] | .Name')" COMPREPLY+=( $(compgen -W "${plugins}" -- "$cur") ) } _show_release_versions() { if ! command -v jq &> /dev/null; then return 0 fi local description description="$(command fwupdmgr get-releases "$1" --json 2>/dev/null | jq '.Releases[].Version')" COMPREPLY+=( $(compgen -W "${description}" -- "$cur") ) } _show_modify_config() { COMPREPLY+=( $(compgen -W '${modify_config_opts[@]}' -- "$cur") ) } _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 arg args COMPREPLY=() _get_comp_words_by_ref cur prev _get_first_arg _count_args case $prev in --filter) _show_filters return 0 ;; esac case $arg in activate|clear-results|downgrade|get-releases|get-results|unlock|verify|verify-update|get-updates|switch-branch|update|upgrade|report-export) #device ID if [[ "$args" = "2" ]]; then _show_device_ids fi ;; get-bios-settings|get-bios-setting) #bios settings (no limit) _show_bios_settings _show_bios_get_modifiers return 0 ;; set-bios-setting) if [[ "$prev" = "--json" ]]; then _show_file_in_dir "$prev" return 0 fi count=$(($((args)) % 2)) #allow setting a single bios setting at a time if [[ $count == 0 ]]; then _show_bios_settings fi #possible values (only works for enumeration though) if [[ $count == 1 ]]; then _show_bios_settings_possible "$prev" return 0 fi _show_bios_set_modifiers return 0 ;; get-plugins) return 0 ;; get-details) #find files if [[ "$args" = "2" ]]; then _filedir fi ;; device-test) #find files if [[ "$args" = "2" ]]; then _filedir fi ;; install) #device ID if [[ "$args" = "2" ]]; then _show_device_ids #version elif [[ "$args" = "3" ]]; then _show_release_versions "$prev" fi ;; local-install) #find files if [[ "$args" = "2" ]]; then _filedir #device ID or modifiers elif [[ "$args" = "3" ]]; then _show_device_ids _show_modifiers fi ;; modify-remote) #find remotes if [[ "$args" = "2" ]]; then _show_remotes #add key elif [[ "$args" = "3" ]]; 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") ) fi ;; enable-remote) #find remotes if [[ "$args" = "2" ]]; then _show_remotes fi ;; disable-remote) #find remotes if [[ "$args" = "2" ]]; then _show_remotes fi ;; modify-config) if [[ "$args" = "2" ]]; then _show_modify_config return 0 elif [[ "$args" = "3" ]]; then case $prev in AllowEmulation|EnumerateAllDevices|OnlyTrusted|IgnorePower|UpdateMotd|ShowDevicePrivate|ReleaseDedupe|TestDevices) COMPREPLY=( $(compgen -W "True False" -- "$cur") ) ;; ReleasePriority) COMPREPLY=( $(compgen -W "local remote" -- "$cur") ) ;; UriSchemes) COMPREPLY=( $(compgen -W "file https http ipfs file;https;http;ipfs file;https;http https;http" -- "$cur") ) ;; P2pPolicy) COMPREPLY=( $(compgen -W "none metadata firmware metadata,firmware" -- "$cur") ) ;; IdleTimeout|ArchiveSizeMax|HostBkc|TrustedUids) ;; ApprovedFirmware|BlockedFirmware) ;; DisabledDevices) _show_device_ids ;; DisabledPlugins) _show_plugins ;; EspLocation) ;; TrustedReports) ;; VerboseDomains) ;; esac return 0; fi ;; refresh) #find first file if [[ "$args" = "2" ]]; then _filedir #find second file elif [[ "$args" = "3" ]]; then _filedir #find remote ID elif [[ "$args" = "4" ]]; then _show_remotes fi ;; *) #find first command if [[ "$args" = "1" ]]; then COMPREPLY=( $(compgen -W '${_fwupdmgr_cmd_list[@]}' -- "$cur") ) fi ;; esac #modifiers _show_modifiers return 0 } complete -F _fwupdmgr fwupdmgr