Not python... yet.
[util-vserver.git] / scripts / vserver.functions
index a10344d..e825271 100644 (file)
@@ -154,15 +154,21 @@ function _generateNiceCommand
 function _generateIONiceCommand
 {
     local vdir=$1
-    local ionice_class=2
-    local ionice_priority=0
+    local ionice_class=
+    local ionice_priority=
 
     test -n "$_IONICE" || return 0
 
     test -r "$vdir/ionice/class" && read ionice_class <"$vdir"/ionice/class
     test -r "$vdir/ionice/priority" && read ionice_priority <"$vdir"/ionice/priority
 
-    IONICE_CMD=( $_IONICE -c$ionice_class -n$ionice_priority )
+    test -n "$ionice_class$ionice_priority" || return 0
+
+    if test -z "$ionice_class" -a -n "$ionice_priority"; then
+       IONICE_CMD=( $_IONICE -c2 -n"$ionice_priority" )
+    else
+       IONICE_CMD=( $_IONICE ${ionice_class:+-c$ionice_class} ${ionice_priority:+-n$ionice_priority} )
+    fi
 }
 
 function _generatePersonalityOptions
@@ -206,6 +212,13 @@ function _generateBCapabilityOptions
     _readFileToArray "$vdir"/bcapabilities OPTS_VATTRIBUTE --bcap
 }
 
+function _generateUMaskOptions
+{
+    local vdir=$1
+
+    _readFileToArray "$vdir"/umask OPTS_VATTRIBUTE --umask
+}
+
 function _generateCapabilityOptions
 {
     local vdir=$1
@@ -442,6 +455,7 @@ function _generateChcontextOptions
 
     _generateCapabilityOptions "$vdir"
     _generateFlagOptions       "$vdir"
+    _generateUMaskOptions      "$vdir"
 
     CHCONTEXT_OPTS=( $SILENT_OPT \
                      "${CHCONTEXT_FLAG_OPTS[@]}" \
@@ -829,8 +843,11 @@ function prepareInit
     pushd "$1/vdir" >/dev/null
     case "$INITSTYLE" in
        sysv)
-           { $_FIND var/run  ! -type d -print0; \
-             $_FIND var/lock ! -type d -print0; } | xargs -0r $_CHROOT_SH rm
+           local -a dirs=( $($_CHROOT_SH realpath /var/run /var/lock || :) )
+           local dir
+           for dir in "${dirs[@]}"; do
+               $_FIND $dir ! -type d -print0 | xargs -0r $_CHROOT_SH rm
+           done
            ;;
        plain)
            $_CHROOT_SH rm .autofsck forcefsck 2>/dev/null || :