From 594467ec520fd3a1e54d56a0aedce7d07d0f8f96 Mon Sep 17 00:00:00 2001 From: Rezart Qelibari Date: Sat, 12 Feb 2022 20:21:02 +0100 Subject: [PATCH] Add log messages to install.sh --- install.sh | 28 ++++++++++++++++++- ...answerQuestionsFromConfigOrAskUser_spec.sh | 1 + spec/askNecessaryQuestions_spec.sh | 1 + spec/filterModules_spec.sh | 2 ++ 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 9432225..8564850 100755 --- a/install.sh +++ b/install.sh @@ -24,16 +24,22 @@ function configureLogging() { function filterModules() { if [ "${#module}" -eq 0 ]; then + lop debug 'No modules given as arguments. Taking all modules.' modulesToInstall=("${allModules[@]}") else + lop debug "Given ${#module} modules as arguments: ${module}" + [ "${inverse}" = true ] && lop debug 'Taking complement set.' local mod pattern="^.*(${(j.|.)module})\$" modulesToInstall=() for mod in "${allModules[@]}"; do local found=false [[ "${mod}" =~ ${pattern} ]] && found=true + lop debug "Was ${mod} found in ${pattern}: ${found}" if [ "${inverse}" != 'true' -a "${found}" = true ]; then + lop debug "Adding module ${mod}" modulesToInstall+=("${mod}") elif [ "${inverse}" = 'true' -a "${found}" = false ]; then + lop debug "Adding module ${mod}" modulesToInstall+=("${mod}") fi done @@ -90,9 +96,13 @@ function parseQuestionLine() { } function populateQuestionsWithModuleRequiredInformation() { + log debug "Asking ${mod} for required information" for line in "${(f)$(runModule "${mod}" --show-required-information)}"; do + log debug "Says line: ${line}" parseQuestionLine + log debug "Parsing question returned status: $?" done + log debug "Parsed questions are: ${(kv)questions}" } function convertQuestionArgsToAskUserArgs() { @@ -126,6 +136,7 @@ function askUserQuestion() { local questionAndArgs=("${(f)questions[$questionID]}") args=() local question="${questionAndArgs[1]}" questionArgs="${questionAndArgs[2]}" convertQuestionArgsToAskUserArgs + lop debug "Converted args for askUser are: ${args}" askUser "${args[@]}" "${question}" value="${REPLY}" } @@ -143,12 +154,18 @@ function answerQuestionsFromConfigOrAskUser() { local questionID for questionID in "${(k)questions[@]}"; do local value configkeys=() + lop debug "Answering question with ID: ${questionID}" generateConfigKeysFromQuestionID "${mod}" "${questionID}" + lop debug "Config keys for question are: ${configkeys}" value="`config read "${configkeys[@]}"`" + lop debug "Config answer for key is: ${value}" if [ -z "${value}" ]; then + lop debug 'Asking user' askUserQuestion + lop debug "User answer is: ${value}" config write "${value}" "${configkeys[@]}" fi + lop debug "Adding answer: ${mod}_${questionID}=${value}" answers+=("${mod}_${questionID}" "${value}") done } @@ -156,7 +173,10 @@ function answerQuestionsFromConfigOrAskUser() { function askNecessaryQuestions() { local mod config setappname "de.astzweig.macos.system-setup" - [ -n "${config_only}" ] && config setconfigfile "${config_only}" + if [ -n "${config_only}" ]; then + lop debug "Config only option given with value: ${config_only}" + config setconfigfile "${config_only}" + fi for mod in ${modulesToInstall[@]}; do local -A questions=() populateQuestionsWithModuleRequiredInformation @@ -173,8 +193,13 @@ function printModulesToInstall() { } function loadModules() { + local mod modpath=("${_DIR}/modules" "${modpath[@]}") + lop debug "Module paths are: ${modpath[@]}" allModules=("${(f)$(find "${modpath[@]}" -type f -perm +u=x -maxdepth 1 2> /dev/null | sort -n)}") + for mod in "${allModules[@]}"; do + lop debug "Found module ${mod}" + done filterModules [ "${list}" = true ] && printModulesToInstall } @@ -233,6 +258,7 @@ function main() { ensureDocopts autoloadZShLib configureLogging + lop debug "Called main with $# args: $@" loadModules askNecessaryQuestions [ -z "${config_only}" ] || return 0 diff --git a/spec/answerQuestionsFromConfigOrAskUser_spec.sh b/spec/answerQuestionsFromConfigOrAskUser_spec.sh index 4efdb6c..66a86ff 100644 --- a/spec/answerQuestionsFromConfigOrAskUser_spec.sh +++ b/spec/answerQuestionsFromConfigOrAskUser_spec.sh @@ -1,5 +1,6 @@ Describe 'answerQuestionsFromConfigOrAskUser' Include ./install.sh + lop setoutput -l panic tostdout mod="testmod" It 'does nothing if module has no questions' diff --git a/spec/askNecessaryQuestions_spec.sh b/spec/askNecessaryQuestions_spec.sh index 1ae176e..f49bdf4 100644 --- a/spec/askNecessaryQuestions_spec.sh +++ b/spec/askNecessaryQuestions_spec.sh @@ -1,5 +1,6 @@ Describe 'askNecessaryQuestions' Include ./install.sh + lop setoutput -l panic tostdout It 'sets config app name' appname='' diff --git a/spec/filterModules_spec.sh b/spec/filterModules_spec.sh index 1de8cb9..bdc63e7 100644 --- a/spec/filterModules_spec.sh +++ b/spec/filterModules_spec.sh @@ -1,5 +1,7 @@ Describe 'filterModules' Include ./install.sh + lop setoutput -l panic tostdout + It 'returns all modules if no module arg is given' allModules=(module1 module2 'module3 with space') modulesToInstall=() When call filterModules