#!/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:]]*//") mkdir -p ${2}/usr/lib/pkg for file in preinst postinst prerm postrm; do [ ! -f $2/CONTROL/$file ] || ( 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