diff options
author | erh <erh@pkgsrc.org> | 2003-09-16 23:19:46 +0000 |
---|---|---|
committer | erh <erh@pkgsrc.org> | 2003-09-16 23:19:46 +0000 |
commit | 9e552b510c49498be38736f39540d8d49fc4df5a (patch) | |
tree | 60e27e28e71ab8bcf2b68b7b95d8ac0909551691 /pkgtools/pkg_tarup | |
parent | a19241c3c875354f1ea9c9899f7627cc13515260 (diff) | |
download | pkgsrc-9e552b510c49498be38736f39540d8d49fc4df5a.tar.gz |
Add support for wildcards and mutiple packages on the command line.
Bump version to 1.5.
Diffstat (limited to 'pkgtools/pkg_tarup')
-rw-r--r-- | pkgtools/pkg_tarup/Makefile | 4 | ||||
-rw-r--r-- | pkgtools/pkg_tarup/files/pkg_tarup | 147 | ||||
-rw-r--r-- | pkgtools/pkg_tarup/files/pkg_tarup_all | 4 |
3 files changed, 89 insertions, 66 deletions
diff --git a/pkgtools/pkg_tarup/Makefile b/pkgtools/pkg_tarup/Makefile index 1ac26559589..d0725361e7e 100644 --- a/pkgtools/pkg_tarup/Makefile +++ b/pkgtools/pkg_tarup/Makefile @@ -1,6 +1,6 @@ -# $NetBSD: Makefile,v 1.14 2003/07/17 22:52:16 grant Exp $ +# $NetBSD: Makefile,v 1.15 2003/09/16 23:19:46 erh Exp $ -DISTNAME= pkg_tarup-1.4 +DISTNAME= pkg_tarup-1.5 WRKSRC= ${WRKDIR} CATEGORIES= pkgtools MASTER_SITES= # empty diff --git a/pkgtools/pkg_tarup/files/pkg_tarup b/pkgtools/pkg_tarup/files/pkg_tarup index 995ca7fb099..b0307de7420 100644 --- a/pkgtools/pkg_tarup/files/pkg_tarup +++ b/pkgtools/pkg_tarup/files/pkg_tarup @@ -1,9 +1,11 @@ #! @SH@ # -# $Id: pkg_tarup,v 1.9 2003/03/29 04:25:11 jschauma Exp $ +# $Id: pkg_tarup,v 1.10 2003/09/16 23:19:47 erh Exp $ # # Tar up installed package # +# Package names are assumed to not contain spaces. +# # (c) Copyright 2000-2002 Hubert Feyrer <hubert@feyrer.de> # @@ -31,20 +33,14 @@ PKG_SUFX=${PKG_SUFX:-@PKG_SUFX@} PKGREPOSITORY=${PKGREPOSITORY:-/tmp} -PKG="$1" -rPKG="`pkg_info -e \"$PKG\"`" - -if [ "$PKG" = "" -o "$rPKG" = "" -o -f "${PKG_DBDIR}/${rPKG}" ] -then - ${ECHO} Usage: $0 installed_pkg - exit 1 -fi - -PKG=$rPKG -${ECHO} "Creating binary package: $PKG" - +usage() +{ + ${ECHO} "Usage: $1 installed_pkg|pattern [...]" + exit 1 +} -check_and_add() { +check_and_add() +{ opt="$1" file="$2" @@ -59,55 +55,82 @@ check_and_add() { fi } -check_and_add -c ${PKG_DBDIR}/${PKG}/+COMMENT -check_and_add -d ${PKG_DBDIR}/${PKG}/+DESC -check_and_add -b ${PKG_DBDIR}/${PKG}/+BUILD_VERSION -check_and_add -B ${PKG_DBDIR}/${PKG}/+BUILD_INFO -check_and_add -s ${PKG_DBDIR}/${PKG}/+SIZE_PKG -check_and_add -S ${PKG_DBDIR}/${PKG}/+SIZE_ALL -check_and_add -i ${PKG_DBDIR}/${PKG}/+INSTALL -check_and_add -k ${PKG_DBDIR}/${PKG}/+DEINSTALL -check_and_add -r ${PKG_DBDIR}/${PKG}/+REQUIRE -check_and_add -D ${PKG_DBDIR}/${PKG}/+DISPLAY -check_and_add -m ${PKG_DBDIR}/${PKG}/+MTREE #NOTYET# - -PLIST=/tmp/+CONTENTS.$$ -sed -n \ - -e '/^@comment MD5:/d' \ - -e '/^@cwd \.$/,$d' \ - -e '/\$NetBSD/,$p' \ - <${PKG_DBDIR}/${PKG}/+CONTENTS >$PLIST - -# Duplicate first @cwd (work around pkg_create "feature" ...) -grep '^@cwd' $PLIST | ${HEAD} -1 >$PLIST.1 -if [ -s ${PLIST}.1 ] -then - sed \ - -e "/`cat ${PLIST}.1 | sed 's,/,\\\\/,g'`/r${PLIST}.1" \ - <${PLIST} >${PLIST}.2 - mv ${PLIST}.2 ${PLIST} +create_package() +{ + PKG="$1" + ${ECHO} "Creating binary package: $PKG" + + check_and_add -c ${PKG_DBDIR}/${PKG}/+COMMENT + check_and_add -d ${PKG_DBDIR}/${PKG}/+DESC + check_and_add -b ${PKG_DBDIR}/${PKG}/+BUILD_VERSION + check_and_add -B ${PKG_DBDIR}/${PKG}/+BUILD_INFO + check_and_add -s ${PKG_DBDIR}/${PKG}/+SIZE_PKG + check_and_add -S ${PKG_DBDIR}/${PKG}/+SIZE_ALL + check_and_add -i ${PKG_DBDIR}/${PKG}/+INSTALL + check_and_add -k ${PKG_DBDIR}/${PKG}/+DEINSTALL + check_and_add -r ${PKG_DBDIR}/${PKG}/+REQUIRE + check_and_add -D ${PKG_DBDIR}/${PKG}/+DISPLAY + check_and_add -m ${PKG_DBDIR}/${PKG}/+MTREE #NOTYET# + + PLIST=/tmp/+CONTENTS.$$ + sed -n \ + -e '/^@comment MD5:/d' \ + -e '/^@cwd \.$/,$d' \ + -e '/\$NetBSD/,$p' \ + <${PKG_DBDIR}/${PKG}/+CONTENTS >$PLIST + + # Duplicate first @cwd (work around pkg_create "feature" ...) + grep '^@cwd' $PLIST | ${HEAD} -1 >$PLIST.1 + if [ -s ${PLIST}.1 ] + then + sed \ + -e "/`cat ${PLIST}.1 | sed 's,/,\\\\/,g'`/r${PLIST}.1" \ + <${PLIST} >${PLIST}.2 + mv ${PLIST}.2 ${PLIST} + fi + rm ${PLIST}.1 + + # ${ECHO} ----- + # cat $PLIST + # ${ECHO} ----- + # exit 0 + + # Just for kicks ... + # pkg_admin check "${PKG}" + + pkg_create \ + ${PKG_ARGS} \ + -v \ + -f ${PLIST} \ + -l \ + -p "`pkg_info -qp ${PKG} | ${AWK} 'NR == 1 { print $2; exit }'`" \ + -P "`pkg_info -qf ${PKG} | ${AWK} '/^@pkgdep/ { print $2 }'`" \ + -C "`pkg_info -qf ${PKG} | ${AWK} '/^@pkgcfl/ { print $2 }'`" \ + ${PKGREPOSITORY}/${PKG}${PKG_SUFX} + + rm -f ${PLIST} + return 0 +} + +while [ $# -gt 0 ] ; do + rPKG="`pkg_info -e \"$1\"`" + if [ -z "$rPKG" -o -f "${PKG_DBDIR}/${rPKG}" ] ; then + ${ECHO} "Error: package $1 not found" + usage "$0" + fi + PKGS="$PKGS $rPKG" + shift +done +if [ -z "$PKGS" ] ; then + usage "$0" fi -rm ${PLIST}.1 - -# ${ECHO} ----- -# cat $PLIST -# ${ECHO} ----- -# exit 0 - -# Just for kicks ... -# pkg_admin check "${PKG}" - -pkg_create \ - ${PKG_ARGS} \ - -v \ - -f ${PLIST} \ - -l \ - -p "`pkg_info -qp ${PKG} | ${AWK} 'NR == 1 { print $2; exit }'`" \ - -P "`pkg_info -qf ${PKG} | ${AWK} '/^@pkgdep/ { print $2 }'`" \ - -C "`pkg_info -qf ${PKG} | ${AWK} '/^@pkgcfl/ { print $2 }'`" \ - ${PKGREPOSITORY}/${PKG}${PKG_SUFX} - -rm -f ${PLIST} +for xPKG in $PKGS ; do + create_package "$xPKG" + if [ $? -ne 0 ] ; then + exit 1 + fi +done + exit 0 diff --git a/pkgtools/pkg_tarup/files/pkg_tarup_all b/pkgtools/pkg_tarup/files/pkg_tarup_all index d44ef3e572d..8d3065518d6 100644 --- a/pkgtools/pkg_tarup/files/pkg_tarup_all +++ b/pkgtools/pkg_tarup/files/pkg_tarup_all @@ -1,6 +1,6 @@ #! @SH@ # -# $Id: pkg_tarup_all,v 1.1 2003/05/28 14:53:43 hubertf Exp $ +# $Id: pkg_tarup_all,v 1.2 2003/09/16 23:19:47 erh Exp $ # # Tar up installed package plus dependencies # @@ -29,7 +29,7 @@ fi pkg_info -qf "$1" \ | grep @pkgdep \ | ${AWK} '{print $2}' \ -| xargs -n 1 ${PREFIX}/bin/pkg_tarup +| xargs ${PREFIX}/bin/pkg_tarup # 2. the pkg itself ${PREFIX}/bin/pkg_tarup "$1" |