From 2874e0eadef4777eaebb2867972afc4826c624f4 Mon Sep 17 00:00:00 2001 From: Florent Rougon Date: Thu, 11 Oct 2018 12:12:36 +0200 Subject: [PATCH] download_and_compile.sh: new function _logOutput() Use this function for all commands that produce output we want to see on the terminal and in the log file. Actually, the first parmeter of the function, which is optional, allows one to choose where we want the output to be written to: the terminal and/or the log file (three possibilities, since for none of these, '>/dev/null' redirection can be used directly). --- download_and_compile.sh | 41 +++++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/download_and_compile.sh b/download_and_compile.sh index a2cbd67..9c0da84 100755 --- a/download_and_compile.sh +++ b/download_and_compile.sh @@ -64,6 +64,22 @@ function _printLog(){ echo "$@" | tee -a "$LOGFILE" } +# Echo the contents of stdin to the terminal and/or to $LOGFILE. +function _logOutput(){ + case "$1" in + term) + cat ;; + file) + cat >> "$LOGFILE" ;; + ""|term+file) + tee -a "$LOGFILE" ;; + *) + _printLog "Bug in ${PROGNAME}: unexpected value for the first parameter" \ + "of _logOutput(): '$1'" + exit 1 ;; + esac +} + function _logSep(){ echo "***********************************" >> $LOGFILE } @@ -153,9 +169,9 @@ function _make(){ pkg=$1 cd "$CBD"/build/$pkg echo "MAKE $pkg" >> $LOGFILE - make $JOPTION $OOPTION 2>&1 | tee -a $LOGFILE + make $JOPTION $OOPTION 2>&1 | _logOutput echo "INSTALL $pkg" >> $LOGFILE - make install 2>&1 | tee -a $LOGFILE + make install 2>&1 | _logOutput fi } @@ -653,7 +669,7 @@ if _elementIn "CMAKE" "${WHATTOBUILD[@]}"; then _printLog "CONFIGURING CMake" cd "$CBD"/build/cmake ../../cmake/configure --prefix="$INSTALL_DIR_CMAKE" \ - 2>&1 | tee -a $LOGFILE + 2>&1 | _logOutput fi _make cmake @@ -689,7 +705,7 @@ if _elementIn "PLIB" "${WHATTOBUILD[@]}"; then cd "$CBD"/build/plib "$CMAKE" -DCMAKE_BUILD_TYPE="$BUILD_TYPE" \ -DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_PLIB" \ - ../../plib 2>&1 | tee -a $LOGFILE + ../../plib 2>&1 | _logOutput fi _make plib @@ -723,7 +739,7 @@ if _elementIn "OPENRTI" "${WHATTOBUILD[@]}"; then rm -f CMakeCache.txt "$CMAKE" -DCMAKE_BUILD_TYPE="$BUILD_TYPE" \ -DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_OPENRTI" \ - ../../openrti 2>&1 | tee -a $LOGFILE + ../../openrti 2>&1 | _logOutput fi _make openrti @@ -756,7 +772,8 @@ if _elementIn "OSG" "${WHATTOBUILD[@]}"; then OSG_BUILD_TYPE=Release fi "$CMAKE" -DCMAKE_BUILD_TYPE="$OSG_BUILD_TYPE" \ - -DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_OSG" ../../openscenegraph/ 2>&1 | tee -a $LOGFILE + -DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_OSG" ../../openscenegraph \ + 2>&1 | _logOutput fi _make openscenegraph @@ -795,7 +812,7 @@ if _elementIn "SIMGEAR" "${WHATTOBUILD[@]}"; then -DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_SIMGEAR" \ -DCMAKE_PREFIX_PATH="$INSTALL_DIR_OSG;$INSTALL_DIR_OPENRTI" \ $SG_CMAKEARGS \ - ../../simgear 2>&1 | tee -a $LOGFILE + ../../simgear 2>&1 | _logOutput fi _make simgear @@ -843,7 +860,7 @@ if _elementIn "FGFS" "${WHATTOBUILD[@]}" || \ -DCMAKE_PREFIX_PATH="$INSTALL_DIR_SIMGEAR;$INSTALL_DIR_OSG;$INSTALL_DIR_OPENRTI;$INSTALL_DIR_PLIB" \ -DFG_DATA_DIR="$INSTALL_DIR_FGFS/fgdata" \ $FG_CMAKEARGS \ - ../../flightgear 2>&1 | tee -a $LOGFILE + ../../flightgear 2>&1 | _logOutput fi _make flightgear @@ -898,7 +915,7 @@ if _elementIn "FGRUN" "${WHATTOBUILD[@]}"; then "$CMAKE" -DCMAKE_BUILD_TYPE="$BUILD_TYPE" \ -DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_FGRUN" \ -DCMAKE_PREFIX_PATH="$INSTALL_DIR_SIMGEAR" \ - ../../fgrun/ 2>&1 | tee -a $LOGFILE + ../../fgrun/ 2>&1 | _logOutput fi _make fgrun @@ -986,7 +1003,7 @@ if _elementIn "FGX" "${WHATTOBUILD[@]}"; then cd $INSTALL_DIR_FGX echo "MAKE AND INSTALL FGX" >> $LOGFILE echo "make $JOPTION $OOPTION " >> $LOGFILE - make $JOPTION $OOPTION | tee -a $LOGFILE + make $JOPTION $OOPTION 2>&1 | _logOutput cd .. fi @@ -1079,7 +1096,7 @@ if _elementIn "TERRAGEAR" "${WHATTOBUILD[@]}"; then "$CMAKE" -DCMAKE_BUILD_TYPE="Debug" \ -DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR_TG" \ -DCMAKE_PREFIX_PATH="$INSTALL_DIR_SIMGEAR;$INSTALL_DIR_CGAL" \ - ../../terragear/ 2>&1 | tee -a $LOGFILE + ../../terragear/ 2>&1 | _logOutput fi _make terragear @@ -1130,7 +1147,7 @@ if _elementIn "TERRAGEARGUI" "${WHATTOBUILD[@]}"; then rm -f ../../terrageargui/CMakeCache.txt "$CMAKE" -DCMAKE_BUILD_TYPE="Release" \ -DCMAKE_INSTALL_PREFIX="$INSTALL_DIR_TGGUI" \ - ../../terrageargui 2>&1 | tee -a $LOGFILE + ../../terrageargui 2>&1 | _logOutput fi _make terrageargui