%PDF- %PDF-
Direktori : /usr/share/bash-completion/completions/ |
Current File : //usr/share/bash-completion/completions/fwupdtool |
_fwupdtool_cmd_list=( 'activate' 'build-cabinet' 'clear-history' 'disable-remote' 'disable-test-devices' 'efivar-list' 'enable-remote' 'enable-test-devices' '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-firmware-gtypes' 'get-device-flags' 'get-devices' 'get-history' 'get-plugins' 'get-remotes' 'get-report-metadata' 'get-topology' 'hwids' 'update' 'upgrade' 'install' 'install-blob' 'modify-config' 'modify-remote' 'monitor' 'reinstall' 'security' 'security-fix' 'security-undo' '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' 'reboot-cleanup' ) _fwupdtool_opts=( '--verbose' '--allow-reinstall' '--allow-older' '--filter' '--filter-release' '--force' '--json' '--show-all' '--plugins' '--prepare' '--cleanup' '--filter' '--method' '--disable-ssl-strict' '--no-safety-check' '--no-search' '--ignore-checksum' '--ignore-vid-pid' '--save-backends' ) 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_modify_config() { COMPREPLY+=( $(compgen -W '${modify_config_opts[@]}' -- "$cur") ) } _show_remotes() { local remotes remotes="$(command fwupdtool get-remotes | command awk '/Remote ID/ { print $4 }')" COMPREPLY+=( $(compgen -W "${remotes}" -- "$cur") ) } _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' /var/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 ;; modify-remote) #find remotes if [[ "$args" = "2" ]]; then _show_remotes #add key elif [[ "$args" = "3" ]]; then local keys keys="$(command fwupdtool 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 ;; *) #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