debian: honor verbose; fixed bug where base package.list was not being used

This commit is contained in:
Jason Mehring 2014-11-03 23:59:48 -05:00
parent d8138a8f44
commit 422dcc9c24
3 changed files with 73 additions and 33 deletions

View File

@ -1,6 +1,9 @@
#!/bin/bash
# vim: set ts=4 sw=4 sts=4 et :
# XXX
set -e
################################################################################
# Global functions
################################################################################
@ -72,20 +75,40 @@ fi
# ------------------------------------------------------------------------------
# Display messages in color
# ------------------------------------------------------------------------------
# Only output text under certain conditions
output() {
case ${VERBOSE} in
0)
true "${1}"
;;
1)
echo -e "${1}"
;;
2)
# Don't echo if -x is set since it will already be displayed via true
[[ ${-/x} != $- ]] || echo -e "${1}"
true "${1}"
;;
*)
true "${1}"
;;
esac
}
info() {
[[ -z ${TEST} ]] && echo -e "${bold}${blue}INFO: ${1}${reset}" || :
output "${bold}${blue}INFO: ${1}${reset}" || :
}
debug() {
[[ -z ${TEST} ]] && echo -e "${bold}${green}DEBUG: ${1}${reset}" || :
output "${bold}${green}DEBUG: ${1}${reset}" || :
}
warn() {
[[ -z ${TEST} ]] && echo -e "${stout}${yellow}WARNING: ${1}${reset}" || :
output "${stout}${yellow}WARNING: ${1}${reset}" || :
}
error() {
[[ -z ${TEST} ]] && echo -e "${bold}${red}ERROR: ${1}${reset}" || :
output "${bold}${red}ERROR: ${1}${reset}" || :
}
# ------------------------------------------------------------------------------
@ -254,7 +277,7 @@ templateFile() {
local file="$1"
local suffix="$2"
local template_flavor="$3"
local template_dir="$(templateDir ${template_flavor})"
local template_dir="$(templateDir "${template_flavor}")"
splitPath "${file}" path_parts
@ -277,9 +300,17 @@ buildStepExec() {
script="$(templateFile "${filename}" "${suffix}" "${template_flavor}")"
if [ -f "${script}" ]; then
[[ -n ${TEST} ]] && echo "${script}" || echo "${bold}${under}INFO: Currently running script: ${script}${reset}"
#if [ -f "${script}" ]; then
if [ -f "${script}" ] && [ ! ${GLOBAL_CACHE[$script]+_} ]; then
# Test module expects raw output back only used to asser test results
if [[ -n ${TEST} ]]; then
echo "${script}"
else
output "${bold}${under}INFO: Currently running script: ${script}${reset}"
fi
# Cache $script
GLOBAL_CACHE[$script]=1
# Execute $script
"${script}"
fi
@ -308,12 +339,17 @@ copyTreeExec() {
pushd "${target_dir}"
{
setfacl --restore="${source_dir}/.facl" 2>/dev/null ||:
rm -f .facl
}
popd
fi
}
callTemplateFunction() {
# Reset Cache
unset GLOBAL_CACHE
declare -A -g GLOBAL_CACHE
local calling_script="$1"
local calling_arg="$2"
local functionExec="$3"
@ -335,6 +371,12 @@ callTemplateFunction() {
"${calling_arg}" \
"${option}"
done
# If template_flavor exists, also check on base distro
if [ -n "${template_flavor}" ]; then
${functionExec} "${calling_script}" \
"${calling_arg}"
fi
}
# ------------------------------------------------------------------------------
@ -350,7 +392,9 @@ getFileLocations() {
#files=( $(callTemplateFunction "${filename}" "${suffix}" "${function}") )
#setArrayAsGlobal files $return_global_var
files=$(callTemplateFunction "${filename}" "${suffix}" "${function}")
# XXX
#files=$(callTemplateFunction "${filename}" "${suffix}" "${function}")
files="$(callTemplateFunction "${filename}" "${suffix}" "${function}")"
IFS_orig="${IFS}}"; IFS=$'\n'
files=( "${files}" )
@ -402,4 +446,4 @@ copyTree() {
}
# $0 is module that sourced vars.sh
echo "${bold}${under}INFO: Currently running script: ${0}${reset}"
output "${bold}${under}INFO: Currently running script: ${0}${reset}"

View File

@ -112,7 +112,7 @@ EOF
exit 1
fi
for package_list in "${packages_list[@]}"; do
for package_list in ${packages_list[@]}; do
debug "Installing extra packages from: ${package_list}"
DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true \
xargs chroot ${INSTALLDIR} apt-get -y --force-yes install < "${package_list}"

View File

@ -1,8 +1,7 @@
#!/bin/bash
# vim: set ts=4 sw=4 sts=4 et :
VERBOSE=2
DEBUG=1
VERBOSE=1
pushd ../..
ROOT_DIR=$(readlink -m .)
@ -45,27 +44,24 @@ declare -A VALUES=(
)
values() {
[[ -z ${TEST} ]] && {
label=${1}
value="${1}[@]"
value="${!value}"
label=${1}
value="${1}[@]"
value="${!value}"
if [ "${VALUES[$label]}" == "${value}" ]; then
printf " ${bold}${magenta}%-22s = ${value}${reset}\n" "${label}" || :
else
printf " ${bold}${black}%-22s = ${value}${reset}\n" "${label}" || :
fi
#printf "${bold}${black}%s=\"${value}\"${reset}\n" "${label}" || :
VALUES[$label]="${value}"
}
if [ "${VALUES[$label]}" == "${value}" ]; then
printf " ${bold}${magenta}%-22s = ${value}${reset}\n" "${label}" || :
else
printf " ${bold}${black}%-22s = ${value}${reset}\n" "${label}" || :
fi
VALUES[$label]="${value}"
}
info() {
[[ -z ${TEST} ]] && echo "${bold}${blue}${1}${reset}" || :
output "${bold}${blue}${1}${reset}" || :
}
debug() {
[[ -z ${TEST} ]] && echo -e "${magenta}${1}${reset}" || :
output "${magenta}${1}${reset}" || :
}
assertTest(){
@ -97,7 +93,7 @@ header <<EOF
1. With TEMPLATE_FLAVOR
EOF
buildStep "$0" "pre"
assertTest "buildStep $0 pre" "tests/template-flavors/wheezy+whonix-gateway/test_pre.sh"
assertTest "buildStep $0 pre" "tests/template-flavors/wheezy+whonix-gateway/test_pre.sh\ntests/template-flavors/test_pre.sh"
assertEnd
@ -137,7 +133,7 @@ header <<EOF
EOF
buildStep "$0" "pre"
debug "Not supposed to find wheezy+whonix-gateway+kde"
assertTest "buildStep $0 pre" "tests/template-flavors/wheezy+whonix-gateway/test_pre.sh\ntests/template-flavors/wheezy+whonix-gateway+gnome/test_pre.sh"
assertTest "buildStep $0 pre" "tests/template-flavors/wheezy+whonix-gateway/test_pre.sh\ntests/template-flavors/wheezy+whonix-gateway+gnome/test_pre.sh\ntests/template-flavors/test_pre.sh"
assertEnd
@ -159,7 +155,7 @@ header <<EOF
EOF
buildStep "$0" "pre"
debug "Not supposed to find debian+whonix-gateway+kde"
assertTest "buildStep $0 pre" "tests/template-flavors/debian+whonix-gateway/test_pre.sh\ntests/template-flavors/wheezy+whonix-gateway+gnome/test_pre.sh"
assertTest "buildStep $0 pre" "tests/template-flavors/debian+whonix-gateway/test_pre.sh\ntests/template-flavors/wheezy+whonix-gateway+gnome/test_pre.sh\ntests/template-flavors/test_pre.sh"
assertEnd
@ -181,7 +177,7 @@ header <<EOF
EOF
buildStep "$0" "pre"
debug "Not supposed to find whonix-gateway+kde"
assertTest "buildStep $0 pre" "tests/template-flavors/whonix-gateway/test_pre.sh\ntests/template-flavors/wheezy+whonix-gateway+gnome/test_pre.sh"
assertTest "buildStep $0 pre" "tests/template-flavors/whonix-gateway/test_pre.sh\ntests/template-flavors/wheezy+whonix-gateway+gnome/test_pre.sh\ntests/template-flavors/test_pre.sh"
assertEnd
@ -278,7 +274,7 @@ header <<EOF
10. Template directory for options within ${SCRIPTSDIR} using short name filter
EOF
buildStep "$0" "pre"
assertTest "buildStep $0 pre" "tests/template-flavors/wheezy+whonix-gateway/test_pre.sh\ntests/template-flavors/proxy/test_pre.sh"
assertTest "buildStep $0 pre" "tests/template-flavors/wheezy+whonix-gateway/test_pre.sh\ntests/template-flavors/proxy/test_pre.sh\ntests/template-flavors/test_pre.sh"
assertEnd
@ -297,7 +293,7 @@ header <<EOF
11. Template directory for options within using VERY short name filter (+proxy)
EOF
buildStep "$0" "pre"
assertTest "buildStep $0 pre" "tests/template-flavors/wheezy+whonix-gateway/test_pre.sh\ntests/template-flavors/proxy/test_pre.sh"
assertTest "buildStep $0 pre" "tests/template-flavors/wheezy+whonix-gateway/test_pre.sh\ntests/template-flavors/proxy/test_pre.sh\ntests/template-flavors/test_pre.sh"
assertEnd
@ -387,7 +383,7 @@ for file in "${filelist[@]}"; do
echo "Configuration: ${file}"
done
result="$(echo $(printf "'%s' " "${filelist[@]}"))"
assertTest "echo ${result}" "tests/template-flavors/another_location/whonix gw/packages.list tests/template-flavors/wheezy+whonix-gateway+gnome/packages.list"
assertTest "echo ${result}" "tests/template-flavors/another_location/whonix gw/packages.list tests/template-flavors/wheezy+whonix-gateway+gnome/packages.list tests/template-flavors/packages.list"
assertEnd