f871aefd8c15899b7417c11b96e63513e55a3c41
[openwrt/openwrt.git] / target / linux / apm821xx / image / mbl_gen_recovery_tar.sh
1 #!/bin/sh
2
3 # based on scripts/sysupgrade-nand.sh
4
5 profile=""
6 dtb=""
7 dtbname=""
8 kernel=""
9 rootfs=""
10 outfile=""
11 err=""
12
13 while [ "$1" ]; do
14 case "$1" in
15 "--profile")
16 profile="$2"
17 shift
18 shift
19 continue
20 ;;
21 "--dtb")
22 dtb="$2"
23 shift
24 shift
25 continue
26 ;;
27 "--dtbname")
28 dtbname="$2"
29 shift
30 shift
31 continue
32 ;;
33 "--kernel")
34 kernel="$2"
35 shift
36 shift
37 continue
38 ;;
39 "--rootfs")
40 rootfs="$2"
41 shift
42 shift
43 continue
44 ;;
45 *)
46 if [ ! "$outfile" ]; then
47 outfile=$1
48 shift
49 continue
50 else
51 shift
52 continue
53 fi
54 ;;
55 esac
56 done
57
58 if [ -z "$profile" -o ! -r "$dtb" -o ! -r "$kernel" -o ! -r "$rootfs" -o ! "$outfile" ]; then
59 echo "syntax: $0 [--profile profilename] [--dtb dtbimage] [--dtbname dtbname] [--kernel kernelimage] [--rootfs rootfs] out"
60 exit 1
61 fi
62
63 tmpdir="$( mktemp -d 2> /dev/null )"
64 if [ -z "$tmpdir" ]; then
65 # try OSX signature
66 tmpdir="$( mktemp -t 'roottmp' -d )"
67 fi
68
69 if [ -z "$tmpdir" ]; then
70 exit 1
71 fi
72
73 mkdir -p "${tmpdir}/${profile}"
74 [ -z "${dtb}" ] || cp "${dtb}" "${tmpdir}/${profile}/${dtbname}"
75 [ -z "${rootfs}" ] || cp "${rootfs}" "${tmpdir}/${profile}/uRamdisk"
76 [ -z "${kernel}" ] || cp "${kernel}" "${tmpdir}/${profile}/uImage"
77
78 mtime=""
79 if [ -n "$SOURCE_DATE_EPOCH" ]; then
80 mtime="--mtime=@${SOURCE_DATE_EPOCH}"
81 fi
82
83 (cd "$tmpdir"; tar cvf ${profile}.tar ${profile} ${mtime})
84 err="$?"
85 if [ -e "$tmpdir/${profile}.tar" ]; then
86 cp "$tmpdir/${profile}.tar" "$outfile"
87 else
88 err=2
89 fi
90 rm -rf "$tmpdir"
91
92 exit $err