X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fscripts%2Fvpkg;h=7e065e803192a305e042d9bfb9701ab69c1723d1;hb=bfcba376f9e666de4fa3a42aa3198a3a316d6a0a;hp=4bfd6b6fcceed823c74878b143ede4fa05e18a67;hpb=54dafb19b069d8bdd2d29b2c428a1d5636862098;p=util-vserver.git diff --git a/util-vserver/scripts/vpkg b/util-vserver/scripts/vpkg index 4bfd6b6..7e065e8 100755 --- a/util-vserver/scripts/vpkg +++ b/util-vserver/scripts/vpkg @@ -1,4 +1,5 @@ #!/bin/bash +# $Id$ # Copyright (C) 2004 Enrico Scholz # @@ -16,12 +17,13 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -: ${UTIL_VSERVER_VARS:=$(dirname $0)/util-vserver-vars} +: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} test -e "$UTIL_VSERVER_VARS" || { - echo "Can not find util-vserver installation; aborting..." + echo "Can not find util-vserver installation; aborting..." >&2 exit 1 } . "$UTIL_VSERVER_VARS" +. "$_LIB_FUNCTIONS" function showHelp() { @@ -35,7 +37,7 @@ Report bugs to <$PACKAGE_BUGREPORT>." function showVersion() { echo $"\ -pkgmgmt-info $PACKAGE_VERSION -- shows information about packages in vservers +vpkg $PACKAGE_VERSION -- shows information about packages in vservers This program is part of $PACKAGE_STRING Copyright (C) 2004 Enrico Scholz @@ -44,21 +46,6 @@ the GNU General Public License. This program has absolutely no warranty." exit 0 } -function guessStyle() -{ - local vdir=$($_VSERVER_INFO "$1" VDIR) || { - echo $"Can not determine vserver-root" >&2 - exit 1 - } - - if test -e "$vdir"/etc/redhat-release -o -e "$vdir"/etc/fedora-release; then - style=redhat - elif test -e "$vdir"/etc/mandrake-release; then - style=mandrake - else - echo $"Can not determine packagemanagement style" >&2 - fi -} case "$1" in (--help) showHelp $(basename $0);; @@ -79,20 +66,13 @@ case "$tag" in *) echo $"Unsupport tag '$tag'" >&2; exit 1;; esac -cfgdir=$($_VSERVER_INFO "$vserver" APPDIR pkgmgmt) || { - echo $"Package management not configured for vserver '$vserver'" >&2 - exit 1 -} - +cfgdir=$($_VSERVER_INFO "$vserver" APPDIR pkgmgmt) || : vdir=$($_VSERVER_INFO "$1" VDIR) || : style= is_external= -{ read style <"$cfgdir"/style; } 2>/dev/null -test "$style" || guessStyle "$vserver" - -test -e "$cfgdir"/internal || is_external=1 - +pkgmgmt.guessStyle "$vserver" style || exit 1 +pkgmgmt.isInternal "$vserver" || is_external=1 cmd=() @@ -135,6 +115,27 @@ case "$style" in fi fi ;; + (debian) + case "$tag" in + (get-conffiles) + cmd=( sh -c "cat /var/lib/dpkg/info/*.conffiles 2>/dev/null" ) + ;; + (install) + cmd=( apt-get install "$@" ) + ;; + esac + + if test "$is_external"; then + echo $"'external' packagemanagement is not supported for Debian" >&2 + exit 1 + else + cmd=( "$_VSERVER" --silent "$vserver" exec "${cmd[@]}" ) + fi + ;; + (*) + echo $"Packagemanagement is not supported for '$style' style" >&2 + exit 1 + ;; esac export LANG=C