#!/bin/bash # # jail-update: update config files from a jail to a template # feedback: rhatto@riseup.net | gpl # # Jail-update 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; either version 2 of the License, or any later version. # # Jail-update 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 # COMMON="/usr/libexec/simplepkg/common.sh" if [ -f "$COMMON" ]; then source $COMMON else echo "error: file $COMMON found, check your `basename $0` installation" exit 1 fi if [ -f $JAIL_LIST ]; then for jailpath in `cat $JAIL_LIST`; do jail="`basename $jailpath`" echo updating $jailpath... if [ -d "$BASE_CONF/$jail.d" ] || [ -a "$BASE_CONF/$jail.template" ]; then templatepkg -a $jail $jailpath cd $BASE_CONF/$jail.d for file in `find`; do if [[ -f "$file" && -f "$jailpath/$file" ]]; then if ! diff $file $jailpath/$file; then echo updating $file cp -f $jailpath/$file $file fi fi done fi done fi # main jail if [ -a "$BASE_CONF/main.template" ]; then echo updating main installation... templatepkg -a main fi if [ -d "$BASE_CONF/main.d" ]; then cd $BASE_CONF/main.d for file in `find`; do if [[ -f "$file" && -f "/$file" ]]; then if ! diff $file /$file; then echo updating $file cp -f /$file $file fi fi done fi