summaryrefslogtreecommitdiff
path: root/pkgtools/pkg_tarup
diff options
context:
space:
mode:
authorerh <erh>2003-09-16 23:19:46 +0000
committererh <erh>2003-09-16 23:19:46 +0000
commit889be4418e795c7fd03bd55cbb698529ea025125 (patch)
tree60e27e28e71ab8bcf2b68b7b95d8ac0909551691 /pkgtools/pkg_tarup
parent01f4d2cbb28957c962ab57c3d53ffd87669aca8a (diff)
downloadpkgsrc-889be4418e795c7fd03bd55cbb698529ea025125.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/Makefile4
-rw-r--r--pkgtools/pkg_tarup/files/pkg_tarup147
-rw-r--r--pkgtools/pkg_tarup/files/pkg_tarup_all4
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"