initial checkin
authorEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Tue, 3 Feb 2004 21:55:28 +0000 (21:55 +0000)
committerEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Tue, 3 Feb 2004 21:55:28 +0000 (21:55 +0000)
git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@770 94cd875c-1c1d-0410-91d2-eb244daf1a30

util-vserver/distrib/misc/fstab [new file with mode: 0644]
util-vserver/scripts/vserver-build.functions.pkgmgmt [new file with mode: 0644]
util-vserver/scripts/vserver-build.skeleton [new file with mode: 0644]

diff --git a/util-vserver/distrib/misc/fstab b/util-vserver/distrib/misc/fstab
new file mode 100644 (file)
index 0000000..f78c798
--- /dev/null
@@ -0,0 +1,3 @@
+none   /proc           proc    defaults                0 0
+none   /tmp            tmpfs   size=16m,mode=1777      0 0
+none   /dev/pts        devpts  gid=5,mode=620          0 0
diff --git a/util-vserver/scripts/vserver-build.functions.pkgmgmt b/util-vserver/scripts/vserver-build.functions.pkgmgmt
new file mode 100644 (file)
index 0000000..f57bdd0
--- /dev/null
@@ -0,0 +1,83 @@
+# $Id$ --*- sh -*--
+
+# Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#  
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#  
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#  
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+PKGCFGBASE=
+PKGCFGBASE_REL=
+
+function pkgmgmt._setPkgCfgBase
+{
+    test -z "$PKGCFGBASE" || return 0
+
+    for item in "\"$CONFDIR/.defaults/apps/pkgmgmt/base\" 1" "$ROOTDIR/.pkg" "$DEFAULT_VSERVERPKGDIR"; do
+       eval set -- "$item"
+       PKGCFGBASE=$1
+       PKGCFGBASE_REL=$2
+       test ! -d "$PKGCFGBASE" || break
+    done
+
+    test -d "$PKGCFGBASE"  || {
+       echo "pkgcfgbase-dir '$PKGCFGBASE' does not exists or is invalid"
+       exit 1
+    }
+}
+
+function pkgmgmt._setPkgCfg
+{
+    pkgmgmt._setPkgCfgBase
+
+    test -z "$PKGCFGDIR" || return 0
+    PKGCFGDIR="$PKGCFGBASE/$VSERVERDIRNAME"
+}
+
+function pkgmgmt._renameVserverPkgCfg
+{
+    local suffix=.~$(date +'%s')~
+    local i
+    
+    for i in "$PKGCFGDIR"; do
+       test ! -e "$i" || {
+           mv "$i" "$i$suffix"
+           say "Renamed '$i' to '$i$suffix'"
+       }
+    done
+}
+
+function pkgmgmt.initFilesystem
+{
+    test -z "$1" || pkgmgmt._renameVserverPkgCfg
+    test ! -d "$PKGCFGDIR" || {
+       echo $
+"vserver pkgmgmt-directory exists already; please try to use
+'--force'; or remove it manually"
+       exit 1
+    }
+
+    mkdir -p "$SETUP_CONFDIR"/apps/pkgmgmt
+
+    test -z "$PKGCFGDIR" || {
+       ln -s "$PKGCFGDIR" "$SETUP_CONFDIR/apps/pkgmgmt/base"
+
+       test "$_EXECDIR" = / || ln -s "$_EXECDIR" "$confdir/apps/pkgmgmt/execdir"
+    }
+
+}
+
+function pkgmgmt.initVariables
+{
+    pkgmgmt._setPkgCfg
+    findDir  PKGDIR         "$CONFDIR/.distributions/$DISTRIBUTION/pkgs"      "$DISTRIBDIR/$DISTRIBUTION/pkgs"     /
+}
diff --git a/util-vserver/scripts/vserver-build.skeleton b/util-vserver/scripts/vserver-build.skeleton
new file mode 100644 (file)
index 0000000..f5f5d91
--- /dev/null
@@ -0,0 +1,51 @@
+# $Id$ --*- sh -*--
+
+# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+#  
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#  
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#  
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+tmp=$(getopt -o '+d:' --long debug,pkgmgmt -n "$0" -- "$@") || exit 1
+eval set -- "$tmp"
+
+. "$_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT"
+
+use_pkgmgmt=
+while true; do
+    case "$1" in
+       -d)             DISTRIBUTION=$2; shift;;
+       --debug)        set -x;;
+       --pkgmgmt)      use_pkgmgmt=1;;
+       --)             shift; break ;;
+       *)              echo "vserver-build.skeleton: internal error: unrecognized option '$1'"
+                       exit 1
+                       ;;
+    esac
+    shift
+done
+
+getDistribution
+
+initVariables
+test -z "$use_pkgmgmt" || pkgmgmt.initVariables
+
+initFilesystem "$OPTION_FORCE"
+test -z "$use_pkgmgmt" || pkgmgmt.initFilesystem "$OPTION_FORCE"
+
+
+setup_writeOption "$VSERVER_NAME"
+setup_writeInitialFstab
+
+test -z "$BUILD_INITPRE"  || "$BUILD_INITPRE" "$SETUP_CONFDIR"  "$UTIL_VSERVER_VARS"
+test -z "$1" || "$@"
+test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"