|
@@ -2,20 +2,23 @@
|
|
|
|
|
|
set -e
|
|
set -e
|
|
|
|
|
|
-if [ $# -ne 2 ]; then
|
|
|
|
- echo "Usage: $0 <src tar> <dst file>"
|
|
|
|
|
|
+if [ $# -ne 3 ]; then
|
|
|
|
+ echo "Usage: $0 <src tar> <metadata.yaml> <dst file>"
|
|
exit 1
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
|
|
src_tar=$1
|
|
src_tar=$1
|
|
-dst_file=$2
|
|
|
|
|
|
+metadata_dir=`dirname $2`
|
|
|
|
+metadata=`basename $2`
|
|
|
|
+dst_file=$3
|
|
base=`basename $src_tar`
|
|
base=`basename $src_tar`
|
|
dir=/tmp/build.$$
|
|
dir=/tmp/build.$$
|
|
-export IPKG_INSTROOT=$dir
|
|
|
|
|
|
+files_dir=files/
|
|
|
|
+export IPKG_INSTROOT=$dir/rootfs
|
|
|
|
|
|
unpack() {
|
|
unpack() {
|
|
- mkdir $dir
|
|
|
|
- cat $src_tar | (cd $dir && tar -xz)
|
|
|
|
|
|
+ mkdir -p $dir/rootfs
|
|
|
|
+ cat $src_tar | (cd $dir/rootfs && tar -xz)
|
|
}
|
|
}
|
|
|
|
|
|
pack() {
|
|
pack() {
|
|
@@ -28,26 +31,39 @@ pack_squashfs() {
|
|
mksquashfs $dir $dst_file
|
|
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 $dst
|
|
|
|
+ elif test -f $src; then
|
|
|
|
+ cp $src $dst
|
|
|
|
+ foo=$(dirname $file)
|
|
|
|
+ if [ "$foo" = "./etc/init.d" ]; then
|
|
|
|
+ echo Enabling $file
|
|
|
|
+ set +e
|
|
|
|
+ sh $dir/rootfs/etc/rc.common $src enable
|
|
|
|
+ set -e
|
|
|
|
+ fi
|
|
|
|
+ fi
|
|
|
|
+}
|
|
|
|
+
|
|
add_files() {
|
|
add_files() {
|
|
- for f in $(cd files && find); do
|
|
|
|
- src=files/$f
|
|
|
|
- dst=$dir/$f
|
|
|
|
- if test -d $src; then
|
|
|
|
- test -d $dst || mkdir $dst
|
|
|
|
- elif test -f $src; then
|
|
|
|
- cp $src $dst
|
|
|
|
- foo=$(dirname $f)
|
|
|
|
- if [ "$foo" = "./etc/init.d" ]; then
|
|
|
|
- echo Enabling $f
|
|
|
|
- set +e
|
|
|
|
- sh $dir/etc/rc.common $src enable
|
|
|
|
- set -e
|
|
|
|
- fi
|
|
|
|
- fi
|
|
|
|
|
|
+ src_dir=$1
|
|
|
|
+ dst_dir=$2
|
|
|
|
+
|
|
|
|
+ for f in $(cd $src_dir && find); do
|
|
|
|
+ add_file $f $src_dir $dst_dir
|
|
done
|
|
done
|
|
}
|
|
}
|
|
|
|
|
|
unpack
|
|
unpack
|
|
-add_files
|
|
|
|
-#pack
|
|
|
|
-pack_squashfs
|
|
|
|
|
|
+add_files $files_dir $dir/rootfs/
|
|
|
|
+add_file $metadata $metadata_dir $dir
|
|
|
|
+pack
|
|
|
|
+#pack_squashfs
|