#! /bin/bash


USAGE="[--format=<fmt>] [<args>]

Supported formats are:

   rpm          Generate various rpm packages (defaut)
   srpm         Generate various src.rpm packages
   tar		Generate source tarballs

See 'kdist package <command> --help' for more information on a specific command."



case $1 in
--format=*)
	fmt=${1#--format=}
	shift ;;
--help)
	usage ;;
*)
	fmt=rpm
esac

# resolve some aliases
case $fmt in
src.rpm)	fmt=srpm;
esac

#
# This list the devel files using a given tree object
#
package__list_arch_devel_files () {
	local rev=HEAD

	while
		case $1 in
		--rev=*)	rev=${1#--rev=} ;;
		*)		break
		esac
	do
		shift
	done

	git ls-tree --full-tree -r --name-only $rev -- arch/$1 |
	while read f
	do
		case $f in
		*/include/*)		echo $f ;;
		*/scripts/*)		echo $f ;;
		*Kconfig*)		echo $f ;;
		*Kbuild*)		echo $f ;;
		*Makefile*)		echo $f ;;
		*asm-offsets*)		echo $f ;;
		esac
	done
}

package__list_devel_files () {
	local list_genfiles=yes
	local rev=HEAD

	while
		case $1 in
		--rev=*)	rev=${1#--rev=} ;;
		--source-only)	list_genfiles= ;;
		*)		break
		esac
	do
		shift
	done

	#
	# list source files
	#
	echo arch/Kconfig
	echo kernel/bounds.c

	git ls-tree --full-tree -r --name-only $rev |
	while read f
	do
		case $f in
		arch/*)			continue ;;
		scripts/*)		continue ;;
		Documentation/*)	continue ;;
		tools/*)		continue ;;
		esac

		case $f in
		include/*)		echo $f ;;
		*/scripts/*)		echo $f ;;
		*Kconfig*)		echo $f ;;
		*Kbuild*)		echo $f ;;
		*Makefile*)		echo $f ;;
		esac
	done

	#
	# Generated files
	#
	if test "$list_genfiles" = yes; then
		echo .config
		echo Module.symvers
		echo System.map
		echo include/config/
		echo include/generated/
		echo scripts/
	else
		git ls-tree --full-tree -r --name-only $rev scripts/
	fi
}

if ! test -f $libexecdir/kdist-package--$fmt; then
	die "Unsupported package format: $fmt"
fi

source $libexecdir/kdist-package--$fmt

