X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fscripts%2Fvpkg;h=69d5b5b11ae476f236e44d19d71434f8e4c064a6;hb=75de7ac21731b972fb4a423325642066a2ee03f5;hp=0a54bf43d491ee3ea5939ff9623a18545d1bb149;hpb=c25d5fc97b5e1175a17906adea4c2fecd6358735;p=util-vserver.git diff --git a/util-vserver/scripts/vpkg b/util-vserver/scripts/vpkg index 0a54bf4..69d5b5b 100755 --- a/util-vserver/scripts/vpkg +++ b/util-vserver/scripts/vpkg @@ -1,4 +1,5 @@ #!/bin/bash +# $Id$ # Copyright (C) 2004 Enrico Scholz # @@ -18,10 +19,11 @@ : ${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 (the file '$UTIL_VSERVER_VARS' would be expected); 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,23 +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 - elif test -e "$vdir"/etc/debian_version; then - style=debian - else - echo $"Can not determine packagemanagement style" >&2 - fi -} case "$1" in (--help) showHelp $(basename $0);; @@ -86,11 +71,8 @@ vdir=$($_VSERVER_INFO "$1" VDIR) || : style= is_external= -{ read style <"$cfgdir"/style; } 2>/dev/null -test "$style" || guessStyle "$vserver" - -test ! -d "$cfgdir" -o -e "$cfgdir"/internal || is_external=1 - +pkgmgmt.guessStyle "$vserver" style || exit 1 +pkgmgmt.isInternal "$vserver" || is_external=1 cmd=() @@ -102,14 +84,14 @@ case "$style" in ## rpm outputs sometimes '(contains no files)', so return ## only the valid output (get-conffiles) - rpm_param=( -qac --pipe "sed '\!^/!p;d'" );; + rpm_param=( -qac --pipe "$_SED '\!^/!p;d'" );; (install) rpm_param=( -Uvh "$@" ) apt_param=( install "$@" ) ;; esac - if test "$is_external"; then + if test -n "$is_external"; then have_apt=1 test -d "$cfgdir"/base/apt -o -d "$cfgdir"/aptetc || have_apt= else @@ -119,7 +101,7 @@ case "$style" in done fi - if test "$is_external"; then + if test -n "$is_external"; then if test "$have_apt" -a "$apt_param"; then cmd=( "$_VAPT_GET" "$vserver" -- "${apt_param[@]}" ) else @@ -143,13 +125,17 @@ case "$style" in ;; esac - if test "$is_external"; then + if test -n "$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