%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/share/bash-completion/completions/
Upload File :
Create Path :
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

Zerion Mini Shell 1.0