#!/bin/bash BOOT_FILE=$1 shift CAPI=/bin/cli-shell-api CLOG=/var/log/vyatta/vyatta-config-loader.log COMMIT=/opt/vyatta/sbin/my_commit COMMIT_LOG=/var/log/vyatta/vyatta-commit.log do_log () { local level=$1 shift logger -t 'boot-config-loader' -p "local0.$level" -- "$*" } do_commit () { # Check if debug is enabled in the kernel command line grep vyos-debug /proc/cmdline > /dev/null if [ $? == 0 ]; then VYOS_DEBUG=$debug $COMMIT "$@" >>$COMMIT_LOG else $COMMIT "$@" >>$COMMIT_LOG fi } trace () { echo "$(date +'%F %T') $*" } umask 0002 ( trace '== begin boot-config-loader' # set up config session SID=$$ SENV=$($CAPI getSessionEnv $SID) eval "$SENV" if ! $CAPI setupSession; then do_log err 'Cannot set up configuration session.' trace 'Cannot set up configuration session.' exit 1 fi # do load trace '-- begin load' if ! $CAPI loadFile $BOOT_FILE; then do_log warn "Failure(s) encountered during load. See $CLOG for details." trace '-- load finished with failure(s)' else trace '-- load finished successfully' fi # do commit trace '-- begin commit' ret=0 export COMMIT_VIA=boot-config-loader if ! do_commit ; then do_log err 'Commit failed at boot.' trace '-- commit failed' ret=1 else trace '-- commit succeeded' fi # clean up if ! $CAPI teardownSession; then do_log warn 'Failed to tear down configuration session.' trace '-- teardown failed' else trace '-- teardown succeeded' fi trace '-- exiting' echo $ret > /tmp/vyos-config-status sync exit $ret ) >$CLOG 2>&1 exit $?