From: Marco Yuen Date: Wed, 29 Feb 2012 20:24:13 +0000 (-0500) Subject: Refactore reload() into functions. X-Git-Tag: myplc-5.1-1~9^2~1 X-Git-Url: http://git.onelab.eu/?p=myplc.git;a=commitdiff_plain;h=e2524c75bfaa3e628442d55c9bf0ff76aaeb38eb Refactore reload() into functions. --- diff --git a/plc.d/functions b/plc.d/functions index e2e128c..5f52e10 100644 --- a/plc.d/functions +++ b/plc.d/functions @@ -109,6 +109,47 @@ upper () fi } +# Regenerate configuration files +reload () +{ + force=$1 + + # Regenerate the main configuration file from default values + # overlaid with site-specific and current values. + # Thierry -- 2007-07-05 : values in plc_config.xml are *not* taken into account here + files=( + /etc/planetlab/default_config.xml + /etc/planetlab/configs/site.xml + ) + + for file in "${files[@]}" ; do + if [ -n "$force" -o $file -nt /etc/planetlab/plc_config.xml ] ; then + tmp=$(mktemp /tmp/plc_config.xml.XXXXXX) + plc-config --xml "${files[@]}" >$tmp + if [ $? -eq 0 ] ; then + mv $tmp /etc/planetlab/plc_config.xml + chmod 444 /etc/planetlab/plc_config.xml + else + echo "PLC: Warning: Invalid configuration file(s) detected" + rm -f $tmp + fi + break + fi + done + + # Convert configuration to various formats + if [ -n "$force" -o /etc/planetlab/plc_config.xml -nt /etc/planetlab/plc_config ] ; then + plc-config --shell >/etc/planetlab/plc_config + fi + if [ -n "$force" -o /etc/planetlab/plc_config.xml -nt /etc/planetlab/plc_config.py ] ; then + plc-config --python >/etc/planetlab/plc_config.py + fi + if [ -n "$force" -o /etc/planetlab/plc_config.xml -nt /etc/planetlab/php/plc_config.php ] ; then + mkdir -p /etc/planetlab/php + plc-config --php >/etc/planetlab/php/plc_config.php + fi +} + # Make copies of stdout and stderr. The plc initscript redirects # stdout and stderr to a logfile if -v is not specified. [ ! -e /proc/self/fd/3 ] && exec 3>&1 diff --git a/plc.init b/plc.init index 999a1ec..c98b0c1 100755 --- a/plc.init +++ b/plc.init @@ -45,46 +45,6 @@ done | sort -n | cut -d' ' -f2 )) nsteps=${#steps[@]} -# Regenerate configuration files -reload () -{ - force=$1 - - # Regenerate the main configuration file from default values - # overlaid with site-specific and current values. - # Thierry -- 2007-07-05 : values in plc_config.xml are *not* taken into account here - files=( - /etc/planetlab/default_config.xml - /etc/planetlab/configs/site.xml - ) - for file in "${files[@]}" ; do - if [ -n "$force" -o $file -nt /etc/planetlab/plc_config.xml ] ; then - tmp=$(mktemp /tmp/plc_config.xml.XXXXXX) - plc-config --xml "${files[@]}" >$tmp - if [ $? -eq 0 ] ; then - mv $tmp /etc/planetlab/plc_config.xml - chmod 444 /etc/planetlab/plc_config.xml - else - echo "PLC: Warning: Invalid configuration file(s) detected" - rm -f $tmp - fi - break - fi - done - - # Convert configuration to various formats - if [ -n "$force" -o /etc/planetlab/plc_config.xml -nt /etc/planetlab/plc_config ] ; then - plc-config --shell >/etc/planetlab/plc_config - fi - if [ -n "$force" -o /etc/planetlab/plc_config.xml -nt /etc/planetlab/plc_config.py ] ; then - plc-config --python >/etc/planetlab/plc_config.py - fi - if [ -n "$force" -o /etc/planetlab/plc_config.xml -nt /etc/planetlab/php/plc_config.php ] ; then - mkdir -p /etc/planetlab/php - plc-config --php >/etc/planetlab/php/plc_config.php - fi -} - usage() { echo "Usage: $0 [OPTION]... [COMMAND] [STEP]..."