vshost-util-vserver

Build script and sources for util-vserver.
git clone https://ccx.te2000.cz/git/vshost-util-vserver
Log | Files | Refs

vesync (2906B)


      1 #!/bin/bash
      2 # $Id$
      3 
      4 # Copyright (C) 2006 Benedikt Boehm <hollow@gentoo.org>
      5 #  
      6 # This program is free software; you can redistribute it and/or modify
      7 # it under the terms of the GNU General Public License as published by
      8 # the Free Software Foundation; version 2 of the License.
      9 #  
     10 # This program is distributed in the hope that it will be useful,
     11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
     12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13 # GNU General Public License for more details.
     14 #  
     15 # You should have received a copy of the GNU General Public License
     16 # along with this program; if not, write to the Free Software
     17 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
     18 
     19 : ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
     20 test -e "$UTIL_VSERVER_VARS" || {
     21     echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
     22     exit 1
     23 }
     24 . "$UTIL_VSERVER_VARS"
     25 . "$_LIB_FUNCTIONS"
     26 
     27 
     28 function showHelp()
     29 {
     30     echo \
     31 $"Usage: $0 <vserver-name>* [--all] [--overlay <dir>] [--overlay-host <rsyncpath>] [--overlay-only]
     32 
     33 Report bugs to <$PACKAGE_BUGREPORT>."
     34     exit 0
     35 }
     36 
     37 function showVersion()
     38 {
     39     echo \
     40 $"vesync $PACKAGE_VERSION -- portage cache sync for vservers
     41 This program is part of $PACKAGE_STRING
     42 
     43 Copyright (C) 2006 Benedikt Boehm
     44 This program is free software; you may redistribute it under the terms of
     45 the GNU General Public License.  This program has absolutely no warranty."
     46     exit 0
     47 }
     48 
     49 tmp=$(getopt -o +q --long help,version,debug,quiet,all,overlay,overlay-host,overlay-only -n "$0" -- "$@") || exit 1
     50 eval set -- "$tmp"
     51 
     52 declare -a send_through vsomething_opts
     53 overlay=
     54 overlay_host=
     55 overlay_only=0
     56 
     57 while true; do
     58     case "$1" in
     59 	(--help)         showHelp $0 ;;
     60 	(--version)      showVersion ;;
     61 	(--debug)        send_through=( "${send_through[@]}" "$1" ); set -x;;
     62 	(--quiet|-q)     send_through=( "${send_through[@]}" "$1" );;
     63 	(--overlay)      overlay="${2%/}";;
     64 	(--overlay-host) overlay_host="${2%/}";;
     65 	(--overlay-only) overlay_only=1;;
     66 	(--)             test ${#vsomething_opts[@]} -eq 0 && shift; break;;
     67 	(*)              vsomething_opts=( "${vsomething_opts[@]}" "$1" );;
     68     esac
     69     shift
     70 done
     71 
     72 declare -a vserver_names
     73 
     74 while [ $# -gt 0 ]; do
     75     case "$1" in
     76 	(--)		shift; break;;
     77 	(*)	   	vserver_names=( "${vserver_names[@]}" "$1" );;
     78     esac
     79     shift
     80 done
     81 
     82 VSOMETHING_TITLE=vesync
     83 VSOMETHING_PKGMGMT=1
     84 
     85 export VSOMETHING_TITLE VSOMETHING_PKGMGMT
     86 
     87 ret=0
     88 
     89 test $overlay_only -eq 0 && \
     90 	$_VSOMETHING "${send_through[@]}" emerge "${vsomething_opts[@]}" "${vserver_names[@]}" -- --metadata
     91 
     92 ret=$?
     93 
     94 test -n "$overlay" -a -n "$overlay_host" && \
     95 	$_VSOMETHING "${send_through[@]}" rsync "${vsomething_opts[@]}" "${vserver_names[@]}" -- \
     96 	-rtW --progress --delete --delete-after "${overlay_host}/" "${overlay}/"
     97 
     98 test $? -eq 0 -a $ret -eq 0