From 7a9ef5f46a88aff243d060a01dba6b77f1cea582 Mon Sep 17 00:00:00 2001 From: emmett1 Date: Tue, 14 May 2019 17:49:45 +0800 Subject: [PATCH] updated --- pkgadd | 15 ++++++++++++--- pkgbuild | 20 +++++++++++++------- scratch | 27 +++++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 10 deletions(-) diff --git a/pkgadd b/pkgadd index 5ac32f7..1b69827 100755 --- a/pkgadd +++ b/pkgadd @@ -232,7 +232,7 @@ if [ ! "$IGNORE_CONFLICT" ]; then conflictedfile=yes fi fi - done < <(cat $TMP_PKGADD | grep -Ev '(.pkginfo|.pkginstall|.pkgreadme)' | grep -v '/$') + done < <(cat $TMP_PKGADD | grep -Ev ^.pkg* | grep -v '/$') if [ "$conflictedfile" = "yes" ]; then msgerr "File conflict found!" @@ -262,7 +262,11 @@ fi fi ) -installcmd="tar --keep-directory-symlink -p -x -v -f $PKGNAME -C ${ROOT:-/} --exclude=.pkginfo --exclude=.pkginstall --exclude=.pkgreadme --exclude=.pkgmkdirs" +for i in $(grep ^.pkg* $TMP_PKGADD); do + excludefile="$excludefile --exclude=$i" +done + +installcmd="tar --keep-directory-symlink -p -x -v -f $PKGNAME -C ${ROOT:-/} $excludefile" rm -f $TMP_PKGINSTALL $TMP_PKGINSTALL_BKP $installcmd | while IFS=' ' read line; do @@ -302,7 +306,12 @@ echo "version = $version" >> $INDEX_DIR/$name/.pkginfo echo "release = $release" >> $INDEX_DIR/$name/.pkginfo install -m644 $TMP_PKGINSTALL $INDEX_DIR/$name/.files [ -f $TMP_PKGINSTALL_BKP ] && install -m644 $TMP_PKGINSTALL_BKP $INDEX_DIR/$name/.bkpfiles -tar -x -f $PKGNAME -C $INDEX_DIR/$name .pkginstall .pkgreadme .pkgmkdirs >/dev/null 2>&1 + +for ii in $(grep ^.pkg* $TMP_PKGADD); do + pkgfiles="$pkgfiles $ii" +done + +tar -x -f $PKGNAME -C $INDEX_DIR/$name ${INCLUDEINPKG[@]} >/dev/null 2>&1 ( cd $ROOT/ if [ ! "$NO_POSTINSTALL" ] && [ ! "$UPGRADE_PKG" ]; then diff --git a/pkgbuild b/pkgbuild index 98ebb0c..abfede3 100755 --- a/pkgbuild +++ b/pkgbuild @@ -340,11 +340,15 @@ backupconf() { } packaging() { - local FILE + local FILE f - [ -f install ] && install -m644 install $PKG/.pkginstall - [ -f readme ] && install -m644 readme $PKG/.pkgreadme - [ -f mkdirs ] && install -m644 mkdirs $PKG/.pkgmkdirs + for f in ${INCLUDEINPKG[@]}; do + [ -f $f ] && install -m644 $f $PKG/.pkg$f + done + + #[ -f install ] && install -m644 install $PKG/.pkginstall + #[ -f readme ] && install -m644 readme $PKG/.pkgreadme + #[ -f mkdirs ] && install -m644 mkdirs $PKG/.pkgmkdirs pushd $PKG >/dev/null @@ -359,9 +363,9 @@ packaging() { backupconf fi - for FILE in .pkginstall .pkgreadme .pkgmkdirs; do - if [ -f $FILE ]; then - addtotar+=($FILE) + for FILE in ${INCLUDEINPKG[@]}; do + if [ -f .pkg$FILE ]; then + addtotar+=(.pkg$FILE) fi done @@ -672,4 +676,6 @@ COMPRESSION_MODE="xz" OPTIONS=(!libtool emptydirs strip zipman buildflags makeflags) +INCLUDEINPKG=(install readme mkdirs) + main "$@" diff --git a/scratch b/scratch index 6711fdf..80834a3 100755 --- a/scratch +++ b/scratch @@ -460,6 +460,33 @@ scratch_foreignpkg() { done } +scratch_info() { + [ $1 ] || return 0 + version="-" + release="-" + iver="-" + irel="-" + if $(isinstalled $1); then + iver=$(installed_pkg_info version $1) + irel=$(installed_pkg_info release $1) + INSTALLED=1 + fi + portpath=$(getportpath $1) + if [ ! -z $portpath ]; then + . $portpath/$BUILD_SCRIPT + PORTEXIST=1 + else + portpath="-" + fi + if [ "$INSTALLED" != 1 ] && [ "$PORTEXIST" != 1 ]; then + return 0 + fi + echo -e "name: \t\t$1 \t$([[ $PORTEXIST = 1 ]] || echo \( foreignpkg \))" + echo -e "version: \t$version \t( installed: $iver )" + echo -e "release: \t$release \t( installed: $irel )" + echo -e "port path: \t$portpath" +} + scratch_trigger() { needroot "Run trigger" if [[ -z "$@" ]]; then