diff --git a/shellscripts/goto_build_dir.sh b/shellscripts/goto_build_dir.sh new file mode 100755 index 0000000000000000000000000000000000000000..5003cbbb32ae0c3c0eb304a44dfeea9952d78949 --- /dev/null +++ b/shellscripts/goto_build_dir.sh @@ -0,0 +1,97 @@ +#!/bin/bash +# ====================================================================== +# +# HELPER :: GO TO A BUILD DIRECTORY +# +# Jump to a build directory to debug build errors. +# +# ---------------------------------------------------------------------- +# 2024-01-19 v1.0 <axel.hahn@iml.unibe.ch> first lines +# ====================================================================== + +cd $( dirname $0 )/.. +CI_APPROOT=$( pwd ) + +# ---------------------------------------------------------------------- +# header +# ---------------------------------------------------------------------- + +cat <<HEADEREND ++---------------------------------------------------------------------- +| CI SERVER * helper script +| Jump to a build directory to debug build errors +: + +HEADEREND + +# ---------------------------------------------------------------------- +# detect workdir +# ---------------------------------------------------------------------- + +datadefault=$( grep "'workDir'.*=>" config/config_defaults.php | cut -f 2 -d '>' | cut -f 2 -d "'" ) +datacustom=$( grep "'workDir'.*=>" config/config_custom.php | cut -f 2 -d '>' | cut -f 2 -d "'" ) +CI_WORKDIR=${datacustom:-$datadefault} +if [ -z "$CI_WORKDIR" ]; then + echo "ERROR: Unable to parse working dir from config/config_*.php." + echo " Sorry ... it is Bash here :-/" + exit 1 +fi +builddir="$CI_WORKDIR/build/" + +# ---------------------------------------------------------------------- +# detect builds on error +# ---------------------------------------------------------------------- + +ls $builddir >/dev/null || exit 1 +echo "Searching for builds im $builddir..." +founddirs=$( find $builddir -maxdepth 2 -type d | grep '2[0-1][0-9][0-9][0-1][0-9][0-3][0-9]' | sort ) + +if [ -z "$founddirs" ]; then + echo "Good news: No build dirs (builds on error) were found. Aborting." + echo + exit 0 +fi + +# ---------------------------------------------------------------------- +# enter my directory +# ---------------------------------------------------------------------- + +cat <<ENDINFO +Found error builds: $( echo "$founddirs" | wc -l ) + +The latest error is the last entry per project. +Select a directory to jump in or press just RETURN to abort: +$( echo "$founddirs" | sed 's,^, ,g') + +ENDINFO + +echo -n "I want to jump to > " +read -r DIR_APPROOT + +test -z "$DIR_APPROOT" && exit 1 +# DIR_APPROOT="/var/imldeployment/build/$DIR_APPROOT" +ls "$DIR_APPROOT" >/dev/null || exit 2 + +# ---------------------------------------------------------------------- +# prepare environment an GO! +# ---------------------------------------------------------------------- + +export DIR_APPROOT +export GIT_SSH="$CI_APPROOT/shellscripts/gitsshwrapper.sh" +export DIR_SSH_KEYS="$CI_WORKDIR/data/sshkeys" +export NVMINIT="$CI_APPROOT/shellscripts/nvm_init.sh"; +export RVMSCRIPT="/usr/local/rvm/scripts/rvm"; + +cd "$DIR_APPROOT" +cat <<EOF + +* Switching now into build dir + $( pwd ) +* The environment for the CI server is set + You can go to the ./hooks/ directory to execute the command of your onbuild actions. + +EOF +echo +bash --rcfile <(cat ~/.bashrc 2>/dev/null; echo 'PS1="CI|$PS1"') + +# ----------------------------------------------------------------------