
. ../include/common
. ../include/packages

cmd=dpkg

# actions:

optcomplete -V action  $cmd i install
optcomplete -V action  $cmd r remove
optcomplete -V action  $cmd P purge
optcomplete -V action  $cmd p print-avail 
optcomplete -V action  $cmd update-avail merge-avail
optcomplete -V action  $cmd A record-avail
optcomplete  $cmd set-selections 
optcomplete  $cmd get-selections 
optcomplete  $cmd yet-to-unpack
optcomplete -V action  $cmd L listfiles
optcomplete -V action  $cmd S search
optcomplete  $cmd print-architecture print-gnu-build-architecture print-installation-architecture 
optcomplete -V action  $cmd compare-versions
optcomplete  $cmd forget-old-unavail clear-avail
optcomplete -V action  $cmd l list
optcomplete -V action  $cmd s status
optcomplete -V action  $cmd C audit
optcomplete -V action  $cmd unpack
optcomplete -V action  $cmd configure
optcomplete  $cmd help force-help
optcomplete  $cmd licence license version

# options:

optcomplete -m arg_required  $cmd abort-after
optcomplete  $cmd B auto-deconfigure
optcomplete -m arg_required  $cmd D debug
optcomplete -T '"$XPC_action" = c -o "$XPC_action" = configure -o "$XPC_action" = r -o "$XPC_action" = remove -o "$XPC_action" = P -o "$XPC_action" = purge'   $cmd pending a
optcomplete -V R -T '"$XPC_action" = i -o "$XPC_action" = install -o "$XPC_action" = A -o "$XPC_action" = record-avail -o "$XPC_action" = unpack'  $cmd recursive R
optcomplete -C "$xpc_packages_inst_C #"  $cmd ignore-depends
optcomplete  $cmd largemem smallmem
optcomplete  $cmd no-act
optcomplete  $cmd G refuse-downgrade
optcomplete -d  $cmd R root admindir instdir
optcomplete  $cmd O selected-only
optcomplete  $cmd E skip-same-version

# nonopt
optcomplete -m long,getoptparse   $cmd 


# dpkg-deb

for cmd in dpkg dpkg-deb
do
	optcomplete -V action  $cmd b build
	optcomplete -V action  $cmd c contents
	optcomplete -V action  $cmd I info
	optcomplete -V action  $cmd f field
	optcomplete -V action  $cmd e control
	optcomplete -V action  $cmd x extract
	optcomplete -V action  $cmd X vextract
	optcomplete -V action  $cmd fsys-tarfile
	optcomplete  $cmd new old
	optcomplete  $cmd nocheck
	
	optcomplete -W '1 2 3 4 5 6 7 8 9'  $cmd z


	optcomplete -m filename -C "
if test -n \"\$XPC_R\"; then
	compgen -d -- \"\$XPC_PATTERN\"
	return
fi
case \"\$XPC_action\" in
b|build)
	compgen -d -- \"\$XPC_PATTERN\"
	;;
A|record-avail|i|install|unpack|c|configure|c|control|fsys-tarfile)
	compgen -f -X\!\*.deb -- \"\$XPC_PATTERN\"
	compgen -d -- \"\$XPC_PATTERN\"
	;;
I|info)
	case \$XPC_NONOPT_NO in
	2)
		#control-file-name
		echo control
		;;
	1)
		compgen -d -- \"\$XPC_PATTERN\"
		compgen -f -X\!\*.deb -- \"\$XPC_PATTERN\"
		;;
	esac
	;;
f|field)
	case \$XPC_NONOPT_NO in
	2)
	echo -e \"Package\nVersion\nArchitecture\nMaintainer\nSource\nDepends\nPre-Depends\nRecommends\nDescription\nEssential\nSection\nPriority\nBinary\nInstalled-Size\nFiles\nStandards-Version\nDistribution\nUrgency\nDate\nFormat\nChanges\nFilename\nMSDOS-Filename\nSize\nMD5sum\nStatus\nConfig-Version\nConffiles\"
		;;
	1)
		compgen -f -X\!\*.deb -- \"\$XPC_PATTERN\"
		compgen -d -- \"\$XPC_PATTERN\"
		;;
	esac
	;;
x|extract|X|vextract)
	case \$XPC_NONOPT_NO in
	1)
		compgen -f -X\!\*.deb -- \"\$XPC_PATTERN\"
		compgen -d -- \"\$XPC_PATTERN\"
		;;
	2)
		compgen -d -- \"\$XPC_PATTERN\"
		;;
	esac
	;;
s|status|configure|r|remove|L|listfiles|P|purge)
	$xpc_packages_inst_C
	;;
update-avail|merge-avail)
	#Packages-file
	compgen -f -- \"\$XPC_PATTERN\"
	;;
p|print-avail)
	$xpc_packages_all_C
esac #"  $cmd NONOPT

done

optcomplete -m long,getoptparse  $cmd


complete -F xpcompfunc dpkg
complete -F xpcompfunc dpkg-deb

