blob: ff5a6a661a0218bab7502604c4c7d7cd8b8ba588 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
#!/bin/sh
set -e
if [ $# -ne 3 ]; then
echo "Usage: $0 <src tar> <metadata.yaml> <dst file>"
exit 1
fi
src_tar=$1
metadata_dir=`dirname $2`
metadata=`basename $2`
dst_file=$3
base=`basename $src_tar`
dir=/tmp/build.$$
files_dir=files/
instroot=$dir/rootfs
export IPKG_INSTROOT=$instroot
unpack() {
mkdir -p $instroot
cat $src_tar | (cd $instroot && tar -xz)
}
pack() {
echo Pack rootfs
(cd $dir && tar -cz *) > $dst_file
}
pack_squashfs() {
echo Pack rootfs squashfs
mksquashfs $dir $dst_file
}
add_file() {
file=$1
src_dir=$2
dst_dir=$3
src=$src_dir/$file
dst=$dst_dir/$file
if test -d $src; then
test -d $dst || mkdir -p $dst
elif test -f $src; then
cp $src $dst
foo=$(dirname $file)
if [ "$foo" = "./etc/init.d" ]; then
echo Enabling $file
set +e
sh $instroot/etc/rc.common $src enable
set -e
fi
fi
}
add_files() {
src_dir=$1
dst_dir=$2
for f in $(cd $src_dir && find); do
add_file $f $src_dir $dst_dir
done
}
unpack
add_files $files_dir $instroot
add_file $metadata $metadata_dir $dir
add_files templates/ $dir/templates/
pack
#pack_squashfs
|