initial checkin
[util-vserver.git] / util-vserver / scripts / vpkg
index 5eecaba..153fe55 100755 (executable)
@@ -18,7 +18,7 @@
 
 : ${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"
@@ -55,6 +55,8 @@ function guessStyle()
        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
@@ -79,11 +81,7 @@ 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=
@@ -91,7 +89,7 @@ is_external=
 {   read style <"$cfgdir"/style; } 2>/dev/null
 test "$style" || guessStyle "$vserver"
 
-test -e "$cfgdir"/internal || is_external=1
+test ! -d "$cfgdir" -o -e "$cfgdir"/internal || is_external=1
 
 
 cmd=()
@@ -135,6 +133,23 @@ 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
+       ;;
 esac
 
 export LANG=C