fix issues when launching from scratch
diff --git a/hudson-scripts/clean-nightly.sh b/hudson-scripts/clean-nightly.sh
index b283af7..0684855 100755
--- a/hudson-scripts/clean-nightly.sh
+++ b/hudson-scripts/clean-nightly.sh
@@ -24,7 +24,6 @@
unqualifiedVersion="${1}"
nbBuildToKeep="${2:-5}"
-LS_LEVEL=20
source "$(dirname "${0}")/init.sh"
LSINFO "Cleaning up '${PROJECT_NAME} ${unqualifiedVersion}' nightly builds (will keep the ${nbBuildToKeep} most recent)"
diff --git a/hudson-scripts/init.sh b/hudson-scripts/init.sh
index 9062d60..fd0bf73 100644
--- a/hudson-scripts/init.sh
+++ b/hudson-scripts/init.sh
@@ -21,6 +21,7 @@
SCRIPT_PATH="$(dirname "${0}")"
INIT_PATH="${INIT_PATH:-${SCRIPT_PATH}/init}"
+LS_LEVEL=20 # log level == info
# load bootstrap scripts (starting with _) in order
for S in $( echo "${INIT_PATH}/_"* | tr ' ' '\n' | sort -t '.' -k1n );
diff --git a/hudson-scripts/init/1_p2.sh b/hudson-scripts/init/1_p2.sh
index 1c87de8..fc84e06 100644
--- a/hudson-scripts/init/1_p2.sh
+++ b/hudson-scripts/init/1_p2.sh
@@ -67,7 +67,7 @@
"${WORKING_DIRECTORY}/p2-admin/p2-admin" \
-vm "${JAVA_HOME}/bin/java" \
-application "org.eclipselabs.equinox.p2.composite.repository" \
- $@
+ $@ || true
}
# Create a p2 index file for composite repositories
diff --git a/hudson-scripts/init/_0_log.sh b/hudson-scripts/init/_0_log.sh
index 1cbcdf1..0563c67 100644
--- a/hudson-scripts/init/_0_log.sh
+++ b/hudson-scripts/init/_0_log.sh
@@ -22,8 +22,6 @@
# Modified from https://github.com/livibetter/log.sh/releases/tag/v0.3
-LS_VERSION=0.3
-
LS_OUTPUT=${LS_OUTPUT:-/dev/stdout}
# XXX need more flexible templating, currently manual padding for level names
#LS_DEFAULT_FMT=${LS_DEFAULT_FMT:-'[${_LS_LEVEL_STR}][${FUNCNAME[1]}:${BASH_LINENO[0]}]'}
@@ -46,20 +44,20 @@
)
_LS_FIND_LEVEL_STR () {
- local LEVEL=${1}
- local i
- _LS_LEVEL_STR="${LEVEL}"
- for ((i=0; i<${#LS_LEVELS[@]}; i+=4)); do
- if [[ "${LEVEL}" == "${LS_LEVELS[i]}" ]]; then
- _LS_LEVEL_STR="${LS_LEVELS[i+1]}"
- #_LS_LEVEL_BEGIN="${LS_LEVELS[i+2]}"
- #_LS_LEVEL_END="${LS_LEVELS[i+3]}"
- return 0
- fi
- done
- _LS_LEVEL_BEGIN=""
- _LS_LEVEL_END=""
- return 1
+local LEVEL=${1}
+local i
+_LS_LEVEL_STR="${LEVEL}"
+for ((i=0; i<${#LS_LEVELS[@]}; i+=4)); do
+ if [[ "${LEVEL}" == "${LS_LEVELS[i]}" ]]; then
+ _LS_LEVEL_STR="${LS_LEVELS[i+1]}"
+ #_LS_LEVEL_BEGIN="${LS_LEVELS[i+2]}"
+ #_LS_LEVEL_END="${LS_LEVELS[i+3]}"
+ return 0
+ fi
+done
+_LS_LEVEL_BEGIN=""
+_LS_LEVEL_END=""
+return 1
}
# General logging function
@@ -75,34 +73,28 @@
printf "${LS_DEFAULT_FMT}" "${_LS_LEVEL_STR}" "${_MSG}" "$(basename ${BASH_SOURCE[1]})" "${BASH_LINENO[0]}" >> "${LS_OUTPUT}"
}
-shopt -s expand_aliases
+# Log Call Stack
+LSCALLSTACK () {
+ local i=0
+ local FRAMES=${#BASH_LINENO[@]}
+ if [ "${FRAMES}" -gt "4" ]; then
+ local start=3
+ else
+ local start=0
+ fi
+ # starts at 3 to skips LSCALLSTACK and __onErr, the last one in arrays
+ for ((i=$start; i<FRAMES-1; i++)); do
+ echo ' File' \"${BASH_SOURCE[i+1]}\", line ${BASH_LINENO[i]}, in ${FUNCNAME[i+1]} >> "${LS_OUTPUT}"
+ # Grab the source code of the line
+ sed -E -n ${BASH_LINENO[i]}'s/^[:space:]*/ /p' "${BASH_SOURCE[i+1]}" >> "${LS_OUTPUT}"
+ # TODO extract arugments from "${BASH_ARGC[@]}" and "${BASH_ARGV[@]}"
+ # It requires `shopt -s extdebug'
+ done
+}
+
alias LSDEBUG='LSLOG 10'
alias LSINFO='LSLOG 20'
alias LSWARNING='LSLOG 30'
alias LSERROR='LSLOG 40'
alias LSCRITICAL='LSLOG 50'
-alias LSLOGSTACK='LSDEBUG Stack trace ; LSCALLSTACK'
-
-# TODO Log Bash information
-LSLOGBASH () {
- :
-}
-
-# TODO Log current user information
-LSLOGUSER () {
- :
-}
-
-# Log Call Stack
-LSCALLSTACK () {
- local i=0
- local FRAMES=${#BASH_LINENO[@]}
- # FRAMES-2 skips main, the last one in arrays
- for ((i=FRAMES-2; i>0; i--)); do
- echo ' File' \"${BASH_SOURCE[i+1]}\", line ${BASH_LINENO[i]}, in ${FUNCNAME[i+1]}
- # Grab the source code of the line
- sed -n "${BASH_LINENO[i]} s/^[:space:]*/ /p" "${BASH_SOURCE[i+1]}"
- # TODO extract arugments from "${BASH_ARGC[@]}" and "${BASH_ARGV[@]}"
- # It requires `shopt -s extdebug'
- done
-}
+alias LSLOGSTACK='LSDEBUG Stack trace ; LSCALLSTACK'
\ No newline at end of file
diff --git a/hudson-scripts/init/_1_trap.sh b/hudson-scripts/init/_1_trap.sh
index 5948df8..f5429ff 100644
--- a/hudson-scripts/init/_1_trap.sh
+++ b/hudson-scripts/init/_1_trap.sh
@@ -36,5 +36,5 @@
}
trap __onErr ERR
-trap __onInterruption INT TERM #DEBUG #RETURN
+trap __onInterruption INT QUIT TERM
trap __onExit EXIT
diff --git a/hudson-scripts/init/_2_workdir.sh b/hudson-scripts/init/_2_workdir.sh
index 6eecfb5..aec30a2 100644
--- a/hudson-scripts/init/_2_workdir.sh
+++ b/hudson-scripts/init/_2_workdir.sh
@@ -11,8 +11,19 @@
# ====================================================================
export WORKING_DIRECTORY="${WORKING_DIRECTORY:-$(pwd)/target}"
+LS_OUTPUT="${WORKING_DIRECTORY}/log.txt"
if [ ! -d "${WORKING_DIRECTORY}" ]; then
LSDEBUG "Creating '${WORKING_DIRECTORY}'"
mkdir -p "${WORKING_DIRECTORY}"
-fi
\ No newline at end of file
+fi
+
+[ -z "${_WORKDIR_MODULE_INITED:-}" ] && {
+ export _WORKDIR_MODULE_INITED="resolved"
+
+ rm -f "${LS_OUTPUT}"
+ touch "${LS_OUTPUT}"
+ tail -f "${LS_OUTPUT}" &
+ _TAIL_PID=$!
+ trap "kill ${_TAIL_PID}" EXIT
+} || true
\ No newline at end of file
diff --git a/hudson-scripts/publish-nightly.sh b/hudson-scripts/publish-nightly.sh
index fd08661..e1afdaf 100755
--- a/hudson-scripts/publish-nightly.sh
+++ b/hudson-scripts/publish-nightly.sh
@@ -24,7 +24,6 @@
artifactURL="${1}"
qualifiedVersion="${2}"
-LS_LEVEL=20
source "$(dirname "${0}")/init.sh"
LSINFO "Publishing nightly build '${PROJECT_NAME} ${qualifiedVersion}'"