summaryrefslogtreecommitdiff
path: root/scripts/tarpkg
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/tarpkg')
-rwxr-xr-xscripts/tarpkg35
1 files changed, 35 insertions, 0 deletions
diff --git a/scripts/tarpkg b/scripts/tarpkg
new file mode 100755
index 000000000..37c0b2079
--- /dev/null
+++ b/scripts/tarpkg
@@ -0,0 +1,35 @@
+#!/usr/bin/env bash
+# create/install compressed tar balls
+#set -x
+
+if [ "$1" = "build" ];then
+ if [ ! -d $2 ];then
+ echo "not a directory"
+ exit 1
+ fi
+ pkgname=$(grep "^Package:" $2/CONTROL/control | sed -e "s/^[^:]*:[[:space:]]*//")
+ version=$(grep "^Version:" $2/CONTROL/control | sed -e "s/^[^:]*:[[:space:]]*//")
+ arch=$(grep "^Architecture:" $2/CONTROL/control | sed -e "s/^[^:]*:[[:space:]]*//")
+ for file in preinst postinst prerm postrm; do
+ [ ! -f $2/CONTROL/$file ] || ( mkdir -p ${2}/usr/lib/pkg && \
+ cp $2/CONTROL/$file ${2}/usr/lib/pkg/${pkgname}.$file && \
+ chmod +x ${2}/usr/lib/pkg/${pkgname}.$file )
+ done
+ rm -rf $2/CONTROL
+ (cd $2 && tar -czf $3/${pkgname}_${version}_${arch}.tar.gz .)
+elif [ "$1" = "install" ];then
+ pkg=$(echo $(basename $2)|sed -e "s#_.*##")
+ if [ -x ${PKG_INSTROOT}/usr/lib/pkg/${pkg}.preinst ]; then
+ IPKG_INSTROOT="$PKG_INSTROOT" ${PKG_INSTROOT}/usr/lib/pkg/${pkg}.preinst
+ rm ${PKG_INSTROOT}/usr/lib/pkg/${pkg}.preinst
+ fi
+ tar -xzpf $2 -C ${PKG_INSTROOT}
+ if [ -x ${PKG_INSTROOT}/usr/lib/pkg/${pkg}.postinst ]; then
+ IPKG_INSTROOT="$PKG_INSTROOT" ${PKG_INSTROOT}/usr/lib/pkg/${pkg}.postinst
+ rm ${PKG_INSTROOT}/usr/lib/pkg/${pkg}.postinst
+ fi
+ rm -rf ${PKG_INSTROOT}/usr/lib/pkg
+else
+ echo "unknown command"
+ exit 1
+fi