edit. Added option to update version, "newpet [package] [newname]"
edit2: Removed a tgz2pet related bug.
Code: Select all
#!/bin/sh
## creates a new pet in /tmp of files listed in /root/.package
if [ ! "$1" -o "$1" == "-h" ]; then
echo 'USEAGE: newpet [package] [newname]
creates new pet in /tmp
add [newname] for updating version'
exit
fi
NAME="$(ls /root/.packages | grep -m1 -i "$1" | sed 's/.files//')"
if [ ! -f /root/.packages/${NAME}.files ]; then
echo "package doesn't exist"
exit
fi
[ -d /tmp/"$NAME" ] && rm -r /tmp/"$NAME"
mkdir /tmp/"$NAME"
for i in `cat /root/.packages/${NAME}.files`; do
echo "$i" >> /tmp/list
done
while read line; do
if [ -f $line ]; then
DIR="$(dirname ${line})"
[ -d /tmp/${NAME}${DIR} ] || mkdir -p /tmp/${NAME}${DIR}
cp -p "$line" /tmp/${NAME}${DIR}
fi
done </tmp/list
cat /root/.packages/user-installed-packages | grep -m1 "$NAME" >>/tmp/${NAME}/pet.specs
## Make pet
cd /tmp
## create new name (if $2 )
if [ "$2" ]; then
## edit pet.specs
SPECS="${NAME}/pet.specs"
sed -i "s/${NAME}.pet/${2}.pet/" ./"$SPECS"
newver="$(echo "$2" | tr -cd '0-9.')"
oldver="$(cat ${SPECS} | cut -d\| -f3)"
sed -i "s/|${oldver}|/|${newver}|/" ./"$SPECS"
field1="$(cat ${SPECS} | cut -d\| -f1)"
sed -i "s/${field1}/${2}/" ./"$SPECS"
NEWNAME="$2"
mv ./$NAME ./$NEWNAME
NAME="$NEWNAME"
fi
tar -czf ./${NAME}.tgz ./"$NAME"
tgz2pet ./${NAME}.tgz
if [ -f ${NAME}.pet ]; then
Xdialog --msgbox "${NAME}.pet created in /tmp" 5 35
fi
## Cleanup
[ -d /tmp/${NAME} ] && rm -r /tmp/${NAME}
[ -f /tmp/list ] && rm -r /tmp/list