use 'test -n "..."' instead of 'test "..."'; when "..." expands to '-v'
[util-vserver.git] / util-vserver / scripts / vrpm-preload
index d9316d8..db99902 100755 (executable)
 
 set -e
 
-: ${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 (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
     exit 1
 }
 . "$UTIL_VSERVER_VARS"
+. "$_LIB_FUNCTIONS"
 
-lib=$_RPM_FAKE_SO
-
-function getSyscallParams
-{
-    set -- `grep '^__NR_new_s_context:' /proc/self/status`
-    scall_nr=$2
-    test -z "$3" || scall_rev=${3##rev}
-}
-
-need_cfg=
-case "$CUR_VSERVER" in
-    /*)        vdir=$CUR_VSERVER;;
-    *)  vdir=$CONFDIR/$CUR_VSERVER/vdir
-       need_cfg=1;;
-esac
-
-test "$CUR_VSERVER" -a -d "$vdir" || {
-    echo "No or invalid vserver-name given"
-    exit 1
-}
-
-ctxfile=/var/run/vservers/${CUR_VSERVER}.ctx
-if test -f "$ctxfile"; then
-    . "$ctxfile"
-else
-    S_CONTEXT=
-fi
-
-for bin in `which rpm` /bin/rpm /usr/lib/rpm/rpmi ""; do
+for bin in `which rpm` /bin/rpm /usr/lib/rpm/rpm${RPM_FLAVOR:-i} ""; do
     ldd "$bin" &>/dev/null && break
 done
 
-test "$bin" || {
-    echo "No dynamically linked rpm binary found; exiting..."
-    exit 1
-}
-
-getSyscallParams
+test -x "$bin" ||
+    panic $"No dynamically linked rpm binary found; exiting..."
 
-RPM_FAKE_S_CONTEXT_REV=$scall_rev \
-RPM_FAKE_S_CONTEXT_NR=$scall_nr \
-RPM_FAKE_CTX=$S_CONTEXT \
-RPM_FAKE_CAP=$[ ~0x3404040f ] \
-LD_PRELOAD=$lib${LD_PRELOAD:+:$LD_PRELOAD} \
-exec $bin "$@"
+rpmFake.init "$CUR_VSERVER"
+rpmFake.exec "$bin" "$@"