Skip to content

Commit

Permalink
add logging to verify functions
Browse files Browse the repository at this point in the history
  • Loading branch information
AlvinSchiller committed Nov 17, 2023
1 parent 42f145a commit c374014
Showing 1 changed file with 26 additions and 6 deletions.
32 changes: 26 additions & 6 deletions installation/includes/02_helpers.sh
Original file line number Diff line number Diff line change
Expand Up @@ -82,21 +82,25 @@ set_optional_service_enablement() {
# Check if the file(s) exist
verify_files_exist() {
local files="$@"
echo "Verify '${files}' do(es) exist"

for file in $files
do
test ! -f ${file} && exit_on_error "ERROR: ${file} does not exists or is not a file!"
done
echo "CHECK"
}

# Check if the dir(s) exist
verify_dirs_exist() {
local files="$@"
local dirs="$@"
echo "Verify '${dirs}' do(es) exist"

for file in $files
for dir in $dirs
do
test ! -f ${file} && exit_on_error "ERROR: ${dir} does not exists or is not a dir!"
test ! -f ${dir} && exit_on_error "ERROR: ${dir} does not exists or is not a dir!"
done
echo "CHECK"
}


Expand All @@ -106,6 +110,7 @@ verify_file_chmod_chown() {
local user_expected=$2
local group_expected=$3
local files="${@:4}"
echo "Verify '${mod_expected}' '${user_expected}':'${group_expected}' is set for '${files}'"

for file in $files
do
Expand All @@ -118,6 +123,7 @@ verify_file_chmod_chown() {
test ! "${user_expected}" == "${user_actual}" && exit_on_error "ERROR: ${file} actual owner (${user_actual}) differs from expected (${user_expected})!"
test ! "${group_expected}" == "${group_actual}" && exit_on_error "ERROR: ${file} actual group (${group_actual}) differs from expected (${group_expected})!"
done
echo "CHECK"
}

# Check if the dir(s) has/have the expected owner and modifications
Expand All @@ -126,6 +132,7 @@ verify_dir_chmod_chown() {
local user_expected=$2
local group_expected=$3
local dirs="${@:4}"
echo "Verify '${mod_expected}' '${user_expected}':'${group_expected}' is set for '${dirs}'"

for dir in $dirs
do
Expand All @@ -138,60 +145,71 @@ verify_dir_chmod_chown() {
test ! "${user_expected}" == "${user_actual}" && exit_on_error "ERROR: ${dir} actual owner (${user_actual}) differs from expected (${user_expected})!"
test ! "${group_expected}" == "${group_actual}" && exit_on_error "ERROR: ${dir} actual group (${group_actual}) differs from expected (${group_expected})!"
done
echo "CHECK"
}

verify_file_contains_string() {
local string="$1"
local file="$2"
echo "Verify '${string}' found in ${file}"

if [[ ! $(grep -iw "${string}" "${file}") ]]; then
exit_on_error "ERROR: '${string}' not found in ${file}"
fi
echo "CHECK"
}

verify_file_contains_string_once() {
local string="$1"
local file="$2"
echo "Verify '${string}' found in ${file}"

local file_contains_string_count=$(grep -oiw "${string}" "${file}" | wc -l)
if [ "$file_contains_string_count" -lt 1 ]; then
exit_on_error "ERROR: '${string}' not found in ${file}"
elif [ "$file_contains_string_count" -gt 1 ]; then
exit_on_error "ERROR: '${string}' found more than once in ${file}"
fi
echo "CHECK"
}

check_service_state() {
local service="$1"
local desired_state="$2"
local option="$3" # optional, dont't quote in next call!
echo "Verify service ${option} ${service} is ${desired_state}"

local actual_state=$(systemctl show -p ActiveState --value ${option} ${service})
if [[ ! "${actual_state}" == "${desired_state}" ]]; then
exit_on_error "ERROR: service ${service} is not ${desired_state} (state: ${actual_state})."
exit_on_error "ERROR: service ${option} ${service} is not ${desired_state} (state: ${actual_state})."
fi
echo "CHECK"
}

check_service_enablement() {
local service="$1"
local desired_enablement="$2"
local option="$3" # optional, dont't quote in next call!
echo "Verify service ${option} ${service} is ${desired_enablement}"

local actual_enablement=$(systemctl is-enabled ${option} ${service})
if [[ ! "${actual_enablement}" == "${desired_enablement}" ]]; then
exit_on_error "ERROR: service ${service} is not ${desired_enablement} (state: ${actual_enablement})."
exit_on_error "ERROR: service ${option} ${service} is not ${desired_enablement} (state: ${actual_enablement})."
fi
echo "CHECK"
}

check_optional_service_enablement() {
local service="$1"
local desired_enablement="$2"
local option="$3" # optional, dont't quote in next call!
echo "Verify service ${option} ${service} is ${desired_enablement}"

local actual_enablement=$(systemctl is-enabled ${option} ${service}) 2>/dev/null
if [[ -n "${actual_enablement}" && ! "${actual_enablement}" == "${desired_enablement}" ]]; then
exit_on_error "ERROR: service ${service} is not ${desired_enablement} (state: ${actual_enablement})."
fi
echo "CHECK"
}

# Reads a textfile and returns all lines as args.
Expand All @@ -217,12 +235,13 @@ verify_apt_packages() {
fi
done
fi
echo "CHECK"
}

# Check if all passed modules are installed. Fail on first missing.
verify_pip_modules() {
local modules="$@"
echo "Verify modulesa are installed: '${modules}'"
echo "Verify modules are installed: '${modules}'"

if [ -n "${modules}" ]; then
local pip_list_installed=$(pip list 2>/dev/null)
Expand All @@ -233,4 +252,5 @@ verify_pip_modules() {
fi
done
fi
echo "CHECK"
}

0 comments on commit c374014

Please sign in to comment.