diff --git a/Framework-ConfigFiles/Framework-ConfigFiles/FrameworkVars b/Framework-ConfigFiles/Framework-ConfigFiles/FrameworkVars deleted file mode 100644 index 9e52a7d..0000000 --- a/Framework-ConfigFiles/Framework-ConfigFiles/FrameworkVars +++ /dev/null @@ -1,4 +0,0 @@ -#Global Variables used by the framework - -export ProjectIncludes="0" -export PreflightCheck="0" diff --git a/Framework-ConfigFiles/FrameworkVars b/Framework-ConfigFiles/FrameworkVars new file mode 100644 index 0000000..fa04dd7 --- /dev/null +++ b/Framework-ConfigFiles/FrameworkVars @@ -0,0 +1,3 @@ +#Global Variables used by the framework + +export ProjectIncludes="1" \ No newline at end of file diff --git a/Framework-ConfigFiles/Framework-ConfigFiles/kv_map b/Framework-ConfigFiles/kv_map similarity index 100% rename from Framework-ConfigFiles/Framework-ConfigFiles/kv_map rename to Framework-ConfigFiles/kv_map diff --git a/Framework-Includes/ErrorHandling.sh b/Framework-Includes/ErrorHandling.sh index 2d41042..2458f08 100644 --- a/Framework-Includes/ErrorHandling.sh +++ b/Framework-Includes/ErrorHandling.sh @@ -19,7 +19,8 @@ export PS4='(${BASH_SOURCE}:${LINENO}): - [${SHLVL},${BASH_SUBSHELL},$?] $ ' function error_out() { - echo "Bailing out. See above for reason...." + print_error "$1" + print_error "Bailing out. See above for reason...." exit 1 } diff --git a/Framework-Includes/PreflightCheck.sh b/Framework-Includes/PreflightCheck.sh index 282a798..9065bc2 100644 --- a/Framework-Includes/PreflightCheck.sh +++ b/Framework-Includes/PreflightCheck.sh @@ -3,29 +3,17 @@ function PreflightCheck() { -#Common things I check for in the scripts I write. +export curr_user="$USER" +export user_check -#export curr_host="$(hostname)" -#export curr_user="$USER" -#export host_check="$(echo $curr_host | grep -c )" -#export user_check="$(echo $curr_user | grep -c )" +user_check="$(echo "$curr_user" | grep -c root)" -#if [ $host_check -ne 1 ]; then -# echo "Must run on ." -# error_out -#fi -#if [ $user_check -ne 1 ]; then -# echo "Must run as ." -# error_out -#fi +if [ $user_check -ne 1 ]; then + print_error "Must run as root." + error_out +fi -#if [ "$ARG_COUNT" -ne ]; then -# help -# error_out -#fi - -#Your additional stuff here... echo "All checks passed...." } diff --git a/ProjectCode/SetupNewSystem.sh b/ProjectCode/SetupNewSystem.sh index 23d07a8..538e2a7 100644 --- a/ProjectCode/SetupNewSystem.sh +++ b/ProjectCode/SetupNewSystem.sh @@ -1,88 +1,44 @@ #!/usr/bin/bash -export CURRENT_TIMESTAMP -CURRENT_TIMESTAMP="$(date +%A-%Y-%m-%d-%T)" +##### +#Core framework functions... +##### -export LOGFILENAME -LOGFILENAME="SetupNewSystem.${CURRENT_TIMESTAMP}.$$" +export FRAMEWORK_INCLUDES_FULL_PATH +FRAMEWORK_INCLUDES_FULL_PATH="$(realpath ../Framework-Includes)" -# Standard strict mode and error handling boilderplate... +export FRAMEWORK_CONFIGS_FULL_PATH +FRAMEWORK_CONFIGS_FULL_PATH="$(realpath ../Framework-ConfigFiles)" -set -o errexit -set -o nounset -set -o pipefail -set -o functrace +export PROJECT_INCLUDES_FULL_PATH +PROJECT_INCLUDES_FULL_PATH="$(realpath ../Project-Includes)" -export PS4='(${BASH_SOURCE}:${LINENO}): - [${SHLVL},${BASH_SUBSHELL},$?] $ ' - -function print_info() -{ - GREEN='\033[0;32m' - NC='\033[0m' - tput bold - echo -e "$GREEN $1${NC}" - echo -e "$GREEN $1${NC}" >> "$LOGFILENAME" - tput sgr0 -} - -function print_error() -{ - RED='\033[0;31m' - NC='\033[0m' - tput bold - echo -e "$RED $1${NC}" - echo "$1" - echo -e "$RED $1${NC}" >> "$LOGFILENAME" - tput sgr0 -} - -log_info_message() { - local message="$1" - local logfile="/var/log/my_script.log" # Define your log file path - - echo "$message" | tee -a "$logfile" -} +export PROJECT_CONGIGS_FULL_PATH +PROJECT_INCLUDES_FULL_PATH="$(realpath ../Project-ConfigFiles)" -function error_out() -{ - print_error "$1" - print_error "Bailing out. See above for reason...." - exit 1 -} +#Framework variables are read from hee +source $FRAMEWORK_CONFIGS_FULL_PATH/FrameworkVars -function handle_failure() { - local lineno=$1 - local fn=$2 - local exitstatus=$3 - local msg=$4 - local lineno_fns=${0% 0} - if [[ "$lineno_fns" != "-1" ]] ; then - lineno="${lineno} ${lineno_fns}" - fi - echo "${BASH_SOURCE[0]}: Function: ${fn} Line Number : [${lineno}] Failed with status ${exitstatus}: $msg" -} +#Boilerplate and support functions +FrameworkIncludeFiles="$(ls -1 --color=none $FRAMEWORK_INCLUDES_FULL_PATH/*)" -trap 'handle_failure "${BASH_LINENO[*]}" "$LINENO" "${FUNCNAME[*]:-script}" "$?" "$BASH_COMMAND"' ERR - -function PreflightCheck() -{ - -export curr_user="$USER" -export user_check - -user_check="$(echo "$curr_user" | grep -c root)" +IFS=$'\n\t' +for file in ${FrameworkIncludeFiles[@]}; do + . "$file" +done +unset IFS -if [ $user_check -ne 1 ]; then - print_error "Must run as root." - error_out +if [[ ProjectIncludes = 1 ]]; then +ProjectIncludeFiles="$(ls -1 --color=none $PROJECT_INCLUDES_FULL_PATH/*)" +IFS=$'\n\t' +for file in ${ProjectIncludeFiles[@]}; do + . "$file" +done +unset IFS fi -print_info "All checks passed...." - -} - # Start actual script logic here... ################# diff --git a/logs/.gitignore b/logs/.gitignore new file mode 100644 index 0000000..b722e9e --- /dev/null +++ b/logs/.gitignore @@ -0,0 +1 @@ +!.gitignore \ No newline at end of file