| #!/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 |