This commit is contained in:
emmett1
2018-10-07 17:48:29 +08:00
parent 12e401426d
commit c8682a0603
2 changed files with 11 additions and 12 deletions

17
pkgadd
View File

@@ -340,19 +340,14 @@ done
# remove old files from old package that not exist in new package
if [ "$UPGRADE_PKG" ] || [ "$REINSTALL_PKG" ]; then
[ "$SILENT_INSTALL" ] || msg2 "Removing old files..."
sort -k 2 $INDEX_DIR/$name/.files > $TMP_PKGADD/$name.old
sort -k 2 $TMP_PKGINSTALL > $TMP_PKGADD/$name.new
diff -w -t -U 0 $TMP_PKGADD/$name.new $TMP_PKGADD/$name.old | \
sed '/^@@/d' | \
sed '/^+++/d' | \
sed '/^---/d' | \
grep ^+ | \
sed 's/+//g' > $TMP_PKGADD/$name.diff
grep -v '/$' $TMP_PKGADD/$name.diff | while IFS=' ' read line; do
grep -Fxv -f $TMP_PKGINSTALL $INDEX_DIR/$name/.files > $TMP_PKGADD/$name.rmlist
grep -v '/$' $TMP_PKGADD/$name.rmlist | while IFS=' ' read line; do
rm "$ROOT/$line" &>/dev/null
done
grep '/$' $TMP_PKGADD/$name.diff | tac | while IFS=' ' read line; do
rmdir "$ROOT/$line" &>/dev/null
grep '/$' $TMP_PKGADD/$name.rmlist | tac | while IFS=' ' read line; do
if [ ! "$(grep -R --exclude-dir="$name" -w "$line" "$INDEX_DIR")" ]; then
rmdir "$ROOT/$line" &>/dev/null
fi
done
fi

View File

@@ -191,7 +191,11 @@ prepare_src() {
if [ "$FILENAME" != "$FILE" ] && [ "$nxt" != 1 ]; then
case $FILENAME in
*.tar|*.tar.gz|*.tar.Z|*.tgz|*.tar.bz2|*.tbz2|*.tar.xz|*.txz|*.tar.lzma|*.zip|*.rpm)
COMMAND="tar -p -o -C $SRC -xf $SOURCE_DIR/$FILENAME"
if [ $(type -p bsdtar) ]; then
COMMAND="bsdtar -p -o -C $SRC -xf $SOURCE_DIR/$FILENAME"
else
COMMAND="tar -p -o -C $SRC -xf $SOURCE_DIR/$FILENAME"
fi
MODE="Unpacking" ;;
*)
COMMAND="cp $SOURCE_DIR/$FILENAME $SRC"