# apk(8) completion                                         *- shell-script -*-
# Automatically generated by apk-tools (src/genbash.lua). Do not modify.

# Helpers
__apk_installed_pkgs() { apk query --fields name --installed "$1*" | sed -n 's/^Name: //p' 2>/dev/null; }
__apk_available_pkgs() { apk query --fields name --available "$1*" | sed -n 's/^Name: //p' 2>/dev/null; }

_comp_cmd_apk() {
	local cur="${COMP_WORDS[COMP_CWORD]}"
	local applet=""

	# Find the applet (first non-option argument)
	for ((i=1; i < COMP_CWORD; i++)); do
		if [[ ${COMP_WORDS[i]} != -* ]]; then
			applet="${COMP_WORDS[i]}"
			break
		fi
	done

	# Applet specific completion
	case "$applet" in
	adbdump)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "--format" -- ${cur}))
		else
			COMPREPLY=()
		fi
		;;
	adbgen)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "" -- ${cur}))
		else
			COMPREPLY=()
		fi
		;;
	adbsign)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "--reset-signatures" -- ${cur}))
		else
			COMPREPLY=()
		fi
		;;
	add)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "--initdb -l --latest --no-chown -u --upgrade --usermode -t --virtual" -- ${cur}))
		else
			COMPREPLY=($(compgen -W "$(__apk_available_pkgs "${cur}")" -- ${cur}))
		fi
		;;
	audit)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "--backup --check-permissions --details --full --ignore-busybox-symlinks --packages --protected-paths --system -r --recursive" -- ${cur}))
		else
			COMPREPLY=()
		fi
		;;
	cache)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "--add-dependencies -a --available --ignore-conflict -l --latest -u --upgrade -s --simulate" -- ${cur}))
		else
			COMPREPLY=()
		fi
		;;
	convdb)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "" -- ${cur}))
		else
			COMPREPLY=()
		fi
		;;
	convndx)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "" -- ${cur}))
		else
			COMPREPLY=()
		fi
		;;
	del)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "-r --rdepends" -- ${cur}))
		else
			COMPREPLY=($(compgen -W "$(__apk_installed_pkgs "${cur}")" -- ${cur}))
		fi
		;;
	dot)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "--errors --installed" -- ${cur}))
		else
			COMPREPLY=($(compgen -W "$(__apk_available_pkgs "${cur}")" -- ${cur}))
		fi
		;;
	extract)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "--destination --no-chown" -- ${cur}))
		else
			COMPREPLY=()
		fi
		;;
	fetch)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "--built-after -l --link -o --output --pkgname-spec -R --recursive -s --stdout -w --world --simulate --url" -- ${cur}))
		else
			COMPREPLY=($(compgen -W "$(__apk_available_pkgs "${cur}")" -- ${cur}))
		fi
		;;
	fix)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "-d --depends -r --reinstall -u --upgrade -x --xattr --directory-permissions" -- ${cur}))
		else
			COMPREPLY=($(compgen -W "$(__apk_installed_pkgs "${cur}")" -- ${cur}))
		fi
		;;
	index)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "-d --description --merge -o --output --prune-origin -x --index --no-warnings --rewrite-arch" -- ${cur}))
		else
			COMPREPLY=($(compgen -W "$(__apk_available_pkgs "${cur}")" -- ${cur}))
		fi
		;;
	info)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "-a --all -d --description -e --exists --installed -L --contents -P --provides -r --rdepends -R --depends -s --size -w --webpage -W --who-owns --install-if --license --replaces --rinstall-if -t --triggers" -- ${cur}))
		else
			COMPREPLY=($(compgen -W "$(__apk_available_pkgs "${cur}")" -- ${cur}))
		fi
		;;
	list)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "-a --available -d --depends -I --installed --manifest -o --origin -O --orphaned -P --providers -u --upgradable --upgradeable" -- ${cur}))
		else
			COMPREPLY=($(compgen -W "$(__apk_available_pkgs "${cur}")" -- ${cur}))
		fi
		;;
	manifest)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "" -- ${cur}))
		else
			COMPREPLY=($(compgen -W "$(__apk_available_pkgs "${cur}")" -- ${cur}))
		fi
		;;
	mkndx)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "-d --description --filter-spec --hash -o --output -x --index --pkgname-spec" -- ${cur}))
		else
			COMPREPLY=($(compgen -W "$(__apk_available_pkgs "${cur}")" -- ${cur}))
		fi
		;;
	mkpkg)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "-F --files -I --info -o --output --rootnode --no-rootnode -s --script --stdout -t --trigger" -- ${cur}))
		else
			COMPREPLY=()
		fi
		;;
	policy)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "" -- ${cur}))
		else
			COMPREPLY=($(compgen -W "$(__apk_available_pkgs "${cur}")" -- ${cur}))
		fi
		;;
	query)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "--all-matches --available --fields --format --from --installed --match --recursive --upgradable --world --orphaned" -- ${cur}))
		else
			COMPREPLY=($(compgen -W "$(__apk_available_pkgs "${cur}")" -- ${cur}))
		fi
		;;
	search)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "-a --all -d --description -e -x --exact --has-origin -o --origin -r --rdepends" -- ${cur}))
		else
			COMPREPLY=($(compgen -W "$(__apk_available_pkgs "${cur}")" -- ${cur}))
		fi
		;;
	stats)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "" -- ${cur}))
		else
			COMPREPLY=()
		fi
		;;
	update)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "" -- ${cur}))
		else
			COMPREPLY=()
		fi
		;;
	upgrade)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "-a --available --ignore -l --latest --no-self-upgrade --prune --self-upgrade-only" -- ${cur}))
		else
			COMPREPLY=($(compgen -W "$(__apk_installed_pkgs "${cur}")" -- ${cur}))
		fi
		;;
	verify)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "" -- ${cur}))
		else
			COMPREPLY=()
		fi
		;;
	version)
		if [[ ${cur} == -* ]]; then
			COMPREPLY=($(compgen -W "-a --all -c --check -I --indexes -l --limit -t --test" -- ${cur}))
		else
			COMPREPLY=()
		fi
		;;
	*)
		if [[ ${cur} == -* ]]; then
			# No applet or unknown applet, complete with global options
			COMPREPLY=($(compgen -W "--allow-untrusted --arch --cache-dir --cache-max-age --cache-packages --cache-predownload --clean-protected --compression --force --force-binary-stdout --force-broken-world --force-missing-repositories --force-no-chroot --force-non-repository --force-old-apk --force-overwrite --force-refresh --help --initramfs-diskless-boot --interactive --keys-dir --legacy-info --no-cache --no-cache-packages --no-cache-predownload --no-check-certificate --no-commit-hooks --no-interactive --no-legacy-info --no-logfile --no-network --no-progress --no-scripts --overlay-from-stdin --preserve-env --print-arch --progress --progress-fd --purge --quiet --repositories-file --repository --repository-config --root --sign-key --simulate --timeout --update-cache --verbose --version --wait -U -V -X -c -f -h -i -p -q -s -v" -- ${cur}))
		elif [[ -z "$applet" ]]; then
			# No applet, complete with applet list
			COMPREPLY=($(compgen -W "adbdump adbgen adbsign add audit cache convdb convndx del dot extract fetch fix index info list manifest mkndx mkpkg policy query search stats update upgrade verify version" -- ${cur}))
		else
			COMPREPLY=()
		fi
		;;
	esac
}

complete -F _comp_cmd_apk apk

