added Vector_zeroEnd() function
[util-vserver.git] / util-vserver / scripts / functions
index 1a23eb6..9c30174 100644 (file)
@@ -119,6 +119,42 @@ function isNumber
     return 0
 }
 
+## Usage: colorize <style> <command>
+function colorize
+{
+    local      style=$1
+    shift
+    
+    if ! tty -s; then
+       "$@"
+    else
+       local   cfile
+       findFile cfile "$CONFDIR"/.defaults/styles/"$style" ''
+       if test "$cfile"; then
+         cat "$cfile"
+       else
+         case "$style" in
+           (bold)      echo -ne "\e[1m";;
+           (emph)      echo -ne "\e[34m";;
+           (info)      echo -ne "\e[0;34m";;
+           (warn*)     echo -ne "\e[1;31m";;
+           (error)     echo -ne "\e[1;33;41m";;
+           (*)         ;;
+         esac
+       fi
+           
+       "$@"
+       echo -ne "\e[m"
+    fi
+}
+
+## Usage: xtermTitle <title>
+function xtermTitle
+{
+    tty -s || return 0
+    echo -ne "\e]0;$@\007"
+}
+
 _VS_LOCKS=''
 ## Usage: lock <lockfile> [<timeout>]
 function lock
@@ -127,9 +163,8 @@ function lock
     rm -f $tmp
     mkfifo -m600 $tmp
 
-    sleep 10
     $_LOCKFILE "$1" $tmp $2 &
-    $tmp 2>/dev/null || return 1
+    grep -q true $tmp 2>/dev/null || return 1
     
     _VS_LOCKS="$! $_VS_LOCKS"
 }
@@ -452,7 +487,7 @@ function callInNamespace
     local ctx=
     
     isAvoidNamespace "$1" || \
-    ctx=$( $_VSERVER_INFO "$1" CONTEXT t ) || ctx=
+    ctx=$( $_VSERVER_INFO "$1" CONTEXT f ) || ctx=
 
     shift
     if test "$ctx"; then
@@ -462,6 +497,21 @@ function callInNamespace
     fi
 }
 
+## Usage: setDefaultTTY <vdir> [<fallback-tty>]
+function setDefaultTTY
+{
+    local cfgdir ttyname
+
+    cfgdir=$($_VSERVER_INFO "$1" APPDIR init) || cfgdir=
+    findObject -e ttyname \
+       ${cfgdir:+"$cfgdir"/tty} \
+       "$CONFDIR/.defaults/apps/init/tty" \
+       $2 /dev/null
+
+    exec   <$ttyname
+    exec  &>$ttyname
+}
+
 ## Usage: pkgmgmt.guessStyle <vserver> <resultvar>
 function pkgmgmt.guessStyle()
 {