| #!/bin/sh | 
 |  | 
 | . $TOPDIR/scripts/functions.sh | 
 |  | 
 | board="" | 
 | kernel="" | 
 | rootfs="" | 
 | outfile="" | 
 | err="" | 
 |  | 
 | while [ "$1" ]; do | 
 | 	case "$1" in | 
 | 	"--board") | 
 | 		board="$2" | 
 | 		shift | 
 | 		shift | 
 | 		continue | 
 | 		;; | 
 | 	"--kernel") | 
 | 		kernel="$2" | 
 | 		shift | 
 | 		shift | 
 | 		continue | 
 | 		;; | 
 | 	"--rootfs") | 
 | 		rootfs="$2" | 
 | 		shift | 
 | 		shift | 
 | 		continue | 
 | 		;; | 
 | 	*) | 
 | 		if [ ! "$outfile" ]; then | 
 | 			outfile=$1 | 
 | 			shift | 
 | 			continue | 
 | 		fi | 
 | 		;; | 
 | 	esac | 
 | done | 
 |  | 
 | if [ ! -n "$board" -o ! -r "$kernel" -a  ! -r "$rootfs" -o ! "$outfile" ]; then | 
 | 	echo "syntax: $0 [--board boardname] [--kernel kernelimage] [--rootfs rootfs] out" | 
 | 	exit 1 | 
 | fi | 
 |  | 
 | tmpdir="$( mktemp -d 2> /dev/null )" | 
 | if [ -z "$tmpdir" ]; then | 
 | 	# try OSX signature | 
 | 	tmpdir="$( mktemp -t 'ubitmp' -d )" | 
 | fi | 
 |  | 
 | if [ -z "$tmpdir" ]; then | 
 | 	exit 1 | 
 | fi | 
 |  | 
 | mkdir -p "${tmpdir}/sysupgrade-${board}" | 
 | echo "BOARD=${board}" > "${tmpdir}/sysupgrade-${board}/CONTROL" | 
 | if [ -n "${rootfs}" ]; then | 
 | 	case "$( get_fs_type ${rootfs} )" in | 
 | 	"squashfs") | 
 | 		dd if="${rootfs}" of="${tmpdir}/sysupgrade-${board}/root" bs=1024 conv=sync | 
 | 		;; | 
 | 	*) | 
 | 		cp "${rootfs}" "${tmpdir}/sysupgrade-${board}/root" | 
 | 		;; | 
 | 	esac | 
 | fi | 
 | [ -z "${kernel}" ] || cp "${kernel}" "${tmpdir}/sysupgrade-${board}/kernel" | 
 |  | 
 | mtime="" | 
 | if [ -n "$SOURCE_DATE_EPOCH" ]; then | 
 | 	mtime="--mtime=@${SOURCE_DATE_EPOCH}" | 
 | fi | 
 |  | 
 | (cd "$tmpdir"; tar --sort=name --owner=0 --group=0 --numeric-owner -cvf sysupgrade.tar sysupgrade-${board} ${mtime}) | 
 | err="$?" | 
 | if [ -e "$tmpdir/sysupgrade.tar" ]; then | 
 | 	cp "$tmpdir/sysupgrade.tar" "$outfile" | 
 | else | 
 | 	err=2 | 
 | fi | 
 | rm -rf "$tmpdir" | 
 |  | 
 | exit $err |