#! /bin/bash # Author: Stephen Hemminger # Date: 2009 # Description: reload portion of configurateion # **** License **** # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # 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. # # This code was originally developed by Vyatta, Inc. # Portions created by Vyatta are Copyright (C) 2006, 2007, 2008 Vyatta, Inc. # All Rights Reserved. # **** End License **** if [ $# -eq 0 ]; then echo "Usage: $0 config path ..." exit 1 fi if [ $EUID -ne 0 ]; then echo "Must be root" exit 1 fi T=$IFS; IFS="/" path=/opt/vyatta/config/active/protocols/"$*" IFS=$T # No point in reloading if that portion of config doesn't exist if [ ! -d $path ]; then echo "$path does not exist" exit 1 fi # Begin reloading transaction /opt/vyatta/sbin/vyatta-cfg-cmd-wrapper begin || exit 1 # In case of error undo trap "/opt/vyatta/sbin/vyatta-cfg-cmd-wrapper end" EXIT HUP INT QUIT TERM # Save current configuration tmp=/tmp/${daemon}-restart.$$ /opt/vyatta/sbin/vyatta-save-config.pl $tmp || exit 1 # Erase portion of active configuration for that protocol rm -fr $path # Reload causing configuration to activate - implies commit /opt/vyatta/sbin/vyatta-load-config.pl $tmp || exit 1 # remove tmp file if successful rm $tmp