fixed typos
[util-vserver.git] / util-vserver / scripts / vserver-build.functions.rpm
index ec6a081..9af4a96 100644 (file)
@@ -18,7 +18,7 @@
 RPMDB_PATH=
 RPMLIBDIR=
 
-function importGPGPubKeys
+function rpm.importGPGPubKeys
 {
     local dst=$1
     local pkgs
@@ -35,20 +35,20 @@ function importGPGPubKeys
        done
     done
 
-    test "$pkgs" || return 0
+    test -n "$pkgs" || return 0
     "$_VRPM" "$dst" -- --import "${pkgs[@]}"
 }
 
-function initVariablesRPM
+function rpm.initVariables
 {
-    test "$WORKAROUND_106057" && \
+    test -n "$WORKAROUND_106057" && \
        RPMDB_PATH=/.rpmdb || \
        RPMDB_PATH=/dev
 
     findDir RPMLIBDIR "$CONFDIR/.distributions/$DISTRIBUTION/rpmlib" "$DISTRIBDIR/$DISTRIBUTION/rpmlib" /
 }
 
-function initFilesystemRPM
+function rpm.initFilesystem
 {
     test -z "$WORKAROUND_106057" || mkdir -p "$RPMDB_PATH"
     mkdir -p "$VDIR$RPMDB_PATH"
@@ -68,3 +68,59 @@ function initFilesystemRPM
 
     test "$RPMLIBDIR"  = / || ln -s "$RPMLIB"  "$confdir/apps/pkgmgmt/rpmlib"
 }
+
+function rpm.initDB
+{
+    RPM_FLAVOR=d "$_VRPM" "$1" -- --initdb
+}
+
+
+
+## Usage: rpmlist.install <vserver> <basedir> <tmpfile> <listfile> <rpm-options>*
+function rpmlist.install()
+{
+    local      cfgdir=$1
+    local      basedir=$2
+    local       manifest=$3
+    local      listfile=$4
+    shift 4
+
+    while read; do
+       case x"$REPLY" in
+           (x|\#*)     continue;;
+       esac
+       
+       echo "$basedir/$REPLY"
+    done >"$manifest" <"$listfile"
+
+    test "$OPTION_DEBUG" -eq 0 || cat "$manifest"
+    test ! -s "$manifest"      || $_VRPM "$cfgdir" -- -U "$@" "$manifest"
+}
+
+
+## Usage: rpmlist.initByDistribution <result-var> <distribution>
+function rpmlist.initByDistribution()
+{
+    local      _rlid_listdir
+    declare -a _rlid_res=() 
+    
+
+    findDir _rlid_listdir "$CONFDIR/.distributions/$2/rpmlist.d" \
+                         "$DISTRIBDIR/$2/rpmlist.d" \
+                         ''
+                   
+    test -d "$_rlid_listdir" || return 0
+
+    local      _rlid_lst
+    for _rlid_lst in "$_rlid_listdir"/*.lst; do
+       test -e "$_rlid_lst" || continue
+
+       local           _rlid_opts=${_rlid_lst%%lst}cmd
+       declare -a      _rlid_tmp=()
+
+       test ! -e "$_rlid_opts" || getFileArray _rlid_tmp "$_rlid_opts"
+       _rlid_res=( "${_rlid_res[@]}" "${_rlid_tmp[@]}" "$_rlid_lst" )
+    done
+
+    eval "$1"='( "${_rlid_res[@]}" )'
+}