From: Benedikt Boehm Date: Fri, 3 Nov 2006 14:36:23 +0000 (+0000) Subject: add gentoo specific wrappers: vemerge, vesync, vupdateworld and vdispatch-conf; add... X-Git-Tag: release-0.30.212~60 X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3597c75084e7f41d64bc251e20ef5d33bb09ea06;p=util-vserver.git add gentoo specific wrappers: vemerge, vesync, vupdateworld and vdispatch-conf; add RUNLEVEL_START to gentoo init style git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2363 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- diff --git a/distrib/gentoo/init-vserver.sh b/distrib/gentoo/init-vserver.sh index 2fb60b3..12fcda9 100644 --- a/distrib/gentoo/init-vserver.sh +++ b/distrib/gentoo/init-vserver.sh @@ -26,4 +26,4 @@ RUNLEVEL=1 /sbin/rc sysinit /sbin/rc boot -/sbin/rc default +/sbin/rc ${1:-default} diff --git a/scripts/Makefile-files b/scripts/Makefile-files index d369285..1dca1da 100644 --- a/scripts/Makefile-files +++ b/scripts/Makefile-files @@ -84,11 +84,15 @@ scripts_legacy_src_PRGS = scripts/legacy/vserver-copy scripts_sbin_src_PRGS = scripts/chcontext \ scripts/vapt-get \ + scripts/vdispatch-conf \ + scripts/vemerge \ + scripts/vesync \ scripts/vpstree \ scripts/vrpm \ scripts/vserver \ scripts/vsomething \ scripts/vtop \ + scripts/vupdateworld \ scripts/vyum scripts_sbin_gen_PRGS = diff --git a/scripts/vdispatch-conf b/scripts/vdispatch-conf new file mode 100755 index 0000000..c767cd8 --- /dev/null +++ b/scripts/vdispatch-conf @@ -0,0 +1,72 @@ +#!/bin/bash +# $Id$ + +# Copyright (C) 2006 Benedikt Boehm +# +# 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. + +: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} +test -e "$UTIL_VSERVER_VARS" || { + echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2 + exit 1 +} +. "$UTIL_VSERVER_VARS" +. "$_LIB_FUNCTIONS" + + +function showHelp() +{ + echo \ +$"Usage: $0 * [--all] -- + + +Report bugs to <$PACKAGE_BUGREPORT>." + exit 0 +} + +function showVersion() +{ + echo \ +$"vdispatch-conf $PACKAGE_VERSION -- dispatch-conf for vservers +This program is part of $PACKAGE_STRING + +Copyright (C) 2006 Benedikt Boehm +This program is free software; you may redistribute it under the terms of +the GNU General Public License. This program has absolutely no warranty." + exit 0 +} + +tmp=$(getopt -o +q --long help,version,debug,quiet,all -n "$0" -- "$@") || exit 1 +eval set -- "$tmp" + +declare -a send_through vsomething_opts + +while true; do + case "$1" in + (--help) showHelp $0 ;; + (--version) showVersion ;; + (--debug) send_through=( "${send_through[@]}" "$1" ); set -x;; + (--quiet|-q) send_through=( "${send_through[@]}" "$1" );; + (--all) vsomething_opts=( "${vsomething_opts[@]}" "$1" );; + (--) shift; break;; + (*) echo $"vdispatch-conf: internal error; arg=='$1'" >&2; exit 1;; + esac + shift +done + +VSOMETHING_TITLE=vemerge +VSOMETHING_PKGMGMT=1 + +export VSOMETHING_TITLE VSOMETHING_PKGMGMT + +exec $_VSOMETHING "${send_through[@]}" dispatch-conf "${vsomething_opts[@]}" diff --git a/scripts/vemerge b/scripts/vemerge new file mode 100755 index 0000000..97f8e30 --- /dev/null +++ b/scripts/vemerge @@ -0,0 +1,73 @@ +#!/bin/bash +# $Id$ + +# Copyright (C) 2006 Benedikt Boehm +# +# 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. + +: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} +test -e "$UTIL_VSERVER_VARS" || { + echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2 + exit 1 +} +. "$UTIL_VSERVER_VARS" +. "$_LIB_FUNCTIONS" + + +function showHelp() +{ + echo \ +$"Usage: $0 * [--all] -- + + +Report bugs to <$PACKAGE_BUGREPORT>." + exit 0 +} + +function showVersion() +{ + echo \ +$"vemerge $PACKAGE_VERSION -- emerge for vservers +This program is part of $PACKAGE_STRING + +Copyright (C) 2006 Benedikt Boehm +This program is free software; you may redistribute it under the terms of +the GNU General Public License. This program has absolutely no warranty." + exit 0 +} + +tmp=$(getopt -o +q --long help,version,debug,quiet,all -n "$0" -- "$@") || exit 1 +eval set -- "$tmp" + +declare -a send_through vsomething_opts + +while true; do + case "$1" in + (--help) showHelp $0 ;; + (--version) showVersion ;; + (--debug) send_through=( "${send_through[@]}" "$1" ); set -x;; + (--quiet|-q) send_through=( "${send_through[@]}" "$1" );; + (--all) vsomething_opts=( "${vsomething_opts[@]}" "$1" );; + (--) shift; break;; + (*) echo $"vemerge: internal error; arg=='$1'" >&2; exit 1;; + esac + shift +done + +VSOMETHING_TITLE=vemerge +VSOMETHING_PKGMGMT=1 + +export VSOMETHING_TITLE VSOMETHING_PKGMGMT + +test ${#vsomething_opts[@]} -eq 0 || vsomething_opts=( "${vsomething_opts[@]}" -- ) +exec $_VSOMETHING "${send_through[@]}" emerge "${vsomething_opts[@]}" "$@" diff --git a/scripts/vesync b/scripts/vesync new file mode 100755 index 0000000..6418239 --- /dev/null +++ b/scripts/vesync @@ -0,0 +1,91 @@ +#!/bin/bash +# $Id$ + +# Copyright (C) 2006 Benedikt Boehm +# +# 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. + +: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} +test -e "$UTIL_VSERVER_VARS" || { + echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2 + exit 1 +} +. "$UTIL_VSERVER_VARS" +. "$_LIB_FUNCTIONS" + + +function showHelp() +{ + echo \ +$"Usage: $0 * [--all] [--overlay ] [--overlay-host ] [--overlay-only] + +Report bugs to <$PACKAGE_BUGREPORT>." + exit 0 +} + +function showVersion() +{ + echo \ +$"vesync $PACKAGE_VERSION -- portage cache sync for vservers +This program is part of $PACKAGE_STRING + +Copyright (C) 2006 Benedikt Boehm +This program is free software; you may redistribute it under the terms of +the GNU General Public License. This program has absolutely no warranty." + exit 0 +} + +tmp=$(getopt -o +q --long help,version,debug,quiet,all,overlay,overlay-host,overlay-only -n "$0" -- "$@") || exit 1 +eval set -- "$tmp" + +declare -a send_through vsomething_opts +overlay= +overlay_host= +overlay_only=0 + +while true; do + case "$1" in + (--help) showHelp $0 ;; + (--version) showVersion ;; + (--debug) send_through=( "${send_through[@]}" "$1" ); set -x;; + (--quiet|-q) send_through=( "${send_through[@]}" "$1" );; + (--all) vsomething_opts=( "${vsomething_opts[@]}" "$1" );; + (--overlay) overlay="${2%/}";; + (--overlay-host) overlay_host="${2%/}";; + (--overlay-only) overlay_only=1;; + (--) shift; break;; + (*) echo $"vesync: internal error; arg=='$1'" >&2; exit 1;; + esac + shift +done + +VSOMETHING_TITLE=vesync +VSOMETHING_PKGMGMT=1 + +export VSOMETHING_TITLE VSOMETHING_PKGMGMT + +test ${#vsomething_opts[@]} -eq 0 || vsomething_opts=( "${vsomething_opts[@]}" -- ) + +ret=0 + +test $overlay_only -eq 0 && \ + $_VSOMETHING "${send_through[@]}" emerge "${vsomething_opts[@]}" --metadata + +ret=$? + +test -n "$overlay" -a -n "$overlay_host" && \ + $_VSOMETHING "${send_through[@]}" rsync "${vsomething_opts[@]}" \ + -rtW --progress --delete --delete-after "${overlay_host}/" "${overlay}/" + +test $? -eq 0 -a $ret -eq 0 diff --git a/scripts/vserver.functions b/scripts/vserver.functions index be6e813..908f0fc 100644 --- a/scripts/vserver.functions +++ b/scripts/vserver.functions @@ -299,8 +299,11 @@ function _generateInitOptions ;; (xgentoo) - INITCMD_START=( /lib/rcscripts/sh/init-vserver.sh ) + test -n "$RUNLEVEL_START" || RUNLEVEL_START="default" + + INITCMD_START=( /lib/rcscripts/sh/init-vserver.sh "$RUNLEVEL_START" ) INITCMD_STOP=( /sbin/rc shutdown ) + INITCMD_PREPARE=( $_FAKE_RUNLEVEL 3 /var/run/utmp ) pushd "$vdir"/vdir &>/dev/null basever=$($_CHROOT_SH cat /etc/gentoo-release | $_AWK '{print $5}') diff --git a/scripts/vupdateworld b/scripts/vupdateworld new file mode 100755 index 0000000..4a7acdc --- /dev/null +++ b/scripts/vupdateworld @@ -0,0 +1,73 @@ +#!/bin/bash +# $Id$ + +# Copyright (C) 2006 Benedikt Boehm +# +# 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. + +: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} +test -e "$UTIL_VSERVER_VARS" || { + echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2 + exit 1 +} +. "$UTIL_VSERVER_VARS" +. "$_LIB_FUNCTIONS" + + +function showHelp() +{ + echo \ +$"Usage: $0 * [--all] -- + + +Report bugs to <$PACKAGE_BUGREPORT>." + exit 0 +} + +function showVersion() +{ + echo \ +$"vupdateworld $PACKAGE_VERSION -- emerge world for vservers +This program is part of $PACKAGE_STRING + +Copyright (C) 2006 Benedikt Boehm +This program is free software; you may redistribute it under the terms of +the GNU General Public License. This program has absolutely no warranty." + exit 0 +} + +tmp=$(getopt -o +q --long help,version,debug,quiet,all -n "$0" -- "$@") || exit 1 +eval set -- "$tmp" + +declare -a send_through vsomething_opts + +while true; do + case "$1" in + (--help) showHelp $0 ;; + (--version) showVersion ;; + (--debug) send_through=( "${send_through[@]}" "$1" ); set -x;; + (--quiet|-q) send_through=( "${send_through[@]}" "$1" );; + (--all) vsomething_opts=( "${vsomething_opts[@]}" "$1" );; + (--) shift; break;; + (*) echo $"vemerge: internal error; arg=='$1'" >&2; exit 1;; + esac + shift +done + +VSOMETHING_TITLE=vemerge +VSOMETHING_PKGMGMT=1 + +export VSOMETHING_TITLE VSOMETHING_PKGMGMT + +test ${#vsomething_opts[@]} -eq 0 || vsomething_opts=( "${vsomething_opts[@]}" -- ) +exec $_VSOMETHING "${send_through[@]}" emerge "${vsomething_opts[@]}" --update --deep --newuse "$@"