tazpkg annotate modules/repack @ rev 976

misc typos
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Nov 09 12:03:43 2021 +0000 (2021-11-09)
parents a02e36d44d06
children
rev   line source
al@840 1 #!/bin/sh
al@840 2 # TazPkg - Tiny autonomous zone packages manager, hg.slitaz.org/tazpkg
al@840 3 # repack - TazPkg module
al@840 4 # Create SliTaz package archive from an installed package
al@840 5
al@840 6
al@840 7 # Connect function libraries
al@840 8 . /lib/libtaz.sh
al@840 9
al@840 10 # Get TazPkg working environment
al@840 11 . @@MODULES@@/getenv
al@840 12
al@840 13
al@840 14 unset EXTRAVERSION; . "$INSTALLED/$1/receipt"
al@840 15
al@840 16 title 'Repacking "%s"' "$PACKAGE-$VERSION$EXTRAVERSION.tazpkg"
al@840 17
al@840 18 if grep -qs ^NO_REPACK= "$INSTALLED/$PACKAGE/receipt"; then
al@840 19 _ "Can't repack package \"%s\"" "$PACKAGE"
al@840 20 exit 1
al@840 21 fi
al@840 22
al@840 23 if [ -s "$INSTALLED/$PACKAGE/modifiers" ]; then
al@840 24 _ "Can't repack, \"%s\" files have been modified by:" "$PACKAGE"
al@840 25 sed 's|.*| \0|' "$INSTALLED/$PACKAGE/modifiers"
al@840 26 exit 1
al@840 27 fi
al@840 28
al@840 29 MISSING=''
al@840 30 while read i; do
al@840 31 [ -e "$i" ] && continue
al@840 32 [ -L "$i" ] || MISSING="$MISSING\n $i"
al@840 33 done < "$INSTALLED/$PACKAGE/files.list"
al@840 34 if [ -n "$MISSING" ]; then
al@840 35 _n "Can't repack, the following files are lost:"
al@840 36 echo -e "$MISSING"
al@840 37 exit 1
al@840 38 fi
al@840 39
al@840 40 TMP_DIR=$(mktemp -d)
al@840 41 cd "$TMP_DIR"
al@840 42
al@840 43 FILES="fs.cpio.lzma\n"
al@840 44 for i in $(ls "$INSTALLED/$PACKAGE"); do
al@840 45 case $i in
al@840 46 volatile.cpio.gz|modifiers) ;;
al@840 47 *) cp "$INSTALLED/$PACKAGE/$i" .; FILES="$FILES$i\n" ;;
al@840 48 esac
al@840 49 done
al@840 50
al@840 51 ln -s / rootfs
al@840 52 mkdir tmp
al@840 53 sed 's/^/rootfs/' < files.list | cpio -o -H newc --quiet | \
al@840 54 { cd tmp ; cpio -idm --quiet >/dev/null; cd ..; }
al@840 55 mv tmp/rootfs fs
al@840 56
al@840 57 if [ -f "$INSTALLED/$PACKAGE/volatile.cpio.gz" ]; then
al@840 58 zcat "$INSTALLED/$PACKAGE/volatile.cpio.gz" | \
al@840 59 { cd fs; cpio -idm --quiet; cd ..; }
al@840 60 fi
al@840 61
al@840 62 if fgrep -q repack_cleanup "$INSTALLED/$PACKAGE/receipt"; then
al@840 63 . "$INSTALLED/$PACKAGE/receipt"
al@840 64 repack_cleanup fs
al@840 65 fi
al@840 66
al@840 67 if [ -f "$INSTALLED/$PACKAGE/$CHECKSUM" ]; then
al@840 68 sed 's, , fs,' < "$INSTALLED/$PACKAGE/$CHECKSUM" | $CHECKSUM -s -c || {
al@840 69 _ "Can't repack, %s error." "$CHECKSUM"
al@840 70 cd "$TOP_DIR"
al@840 71 rm -rf "$TMP_DIR"
al@840 72 exit 1
al@840 73 }
al@840 74 fi
al@840 75
al@840 76 find fs | cpio -o -H newc --quiet | lzma e fs.cpio.lzma -si
al@840 77 echo -e "$FILES" | cpio -o -H newc --quiet > "$TOP_DIR/$PACKAGE-$VERSION$EXTRAVERSION.tazpkg"
al@840 78 cd "$TOP_DIR"
al@840 79 #\rm -R "$TMP_DIR"
al@840 80 _ 'Package "%s" repacked successfully.' "$PACKAGE"
al@840 81 _ 'Size: %s' "$(du -sh "$PACKAGE-$VERSION$EXTRAVERSION.tazpkg")"
al@840 82 newline