#!/bin/bash file="$1" usage(){ echo "Usage: $0 " } if [ "$file" == "" ] then echo "Invalid parameters specified." usage exit 1 fi if [ ! -f $file ] then echo "File '$file' does not exist." usage exit 1 fi if test "$DOCKER_TEST" = "True" then echo "==============================================================================" echo "DOCKER_TEST is set to '$DOCKER_TEST'." echo "Skipping verification of some system parameters." echo "Make sure these are set properly, otherwise tests might fail." echo "Required values/criteria are in '`readlink -e $file`'." echo "==============================================================================" exit 0 fi cat $file | grep -v -e '^#.*$' | grep -v -e '^ *$' | while read line do value_file=`echo $line | awk '{print $1}'` operator=`echo $line | awk '{print $2}'` value=`echo $line | awk '{print $3}'` set_value=`echo $line | awk '{print $4}'` if [[ "$value_file" == "" || "$operator" == "" || "$value" == "" || "$set_value" == "" ]] then echo "Syntax error in requirements file." exit 1 fi current_value=`cat $value_file` if test "$current_value" $operator "$value" then if test "$V" = "2" then echo "Requirement '$value_file $operator $value' satisfied." fi else echo "Requirement '$value_file $operator $value' not satisfied." echo "Writing '$set_value' to '$value_file'." echo "$set_value" | tee "$value_file" > /dev/null if ! test "`cat $value_file`" = "$set_value" then echo "Repeating the write using sudo..." echo "$set_value" | sudo -n tee "$value_file" > /dev/null if ! test "`cat $value_file`" = "$set_value" then echo "Couldn't set the required value. Is that value allowed? Is sudo working?" exit 1 fi fi echo "Succesfully wrote '$set_value' to '$value_file'." fi done