diff --git a/webmonitor.sh b/webmonitor.sh
index c6f63d0..cb70887 100755
--- a/webmonitor.sh
+++ b/webmonitor.sh
@@ -4,7 +4,7 @@
# 2. converts logfile to html (just puts
after every line; will be extended soon)
# 3. uses ajax via javascript to get the converted html-logfile
-[[ -w /var/www ]] || echo "Directory /var/www does not exist, aborting." && exit 1
+if [[ ! -w /var/www/simplecd ]] ; then echo "Directory /var/www/simplecd does not exist, aborting." && exit 1; fi
NOW=$(date '+%d.%m.%Y_%H:%M:%S')
@@ -24,6 +24,7 @@ OUTPUT_DIRECTORY_PATH=/var/www/simplecd/"${OUTPUT_DIRECTORY_NAME}"
LOG_EXISTS=false
PAGE_TITLE="Build $REPO on $(date '+%d.%m.%Y %H:%M:%S')"
CURDIR=$(dirname "$0")
+KNOWN_ANSI_CODES=("[31m" "[32m" ";32m" "[0m" ";31m" "[1m" "[0m") # for better text readibility - extendable
echo $PAGE_TITLE
@@ -104,18 +105,39 @@ let i=0
let t=0
while [[ t -lt 60 ]]; do
let i=$i+1
+ FONTCOLOR=black
CURRENTLINE=$(head -n $i $LOGFILE | tail -n 1)
- if [[ "$LASTLINE" != $CURRENTLINE ]]
- then
- let t=0
- echo $CURRENTLINE "
" >> $OUTPUT_DIRECTORY_PATH/htmllog.log
- LASTLINE=$CURRENTLINE
- sleep 0.5
- else
- sleep 5
- let t=$t+1
- fi
+ if [[ $LASTLINE != $CURRENTLINE ]]
+ then
+ LASTLINE=$CURRENTLINE
+ let t=0
+ for color in ${KNOWN_ANSI_CODES[*]}
+ do
+ if [[ $CURRENTLINE == *$color* ]]
+ then
+ # ansi code handling
+ case $color in
+ \[31m) FONTCOLOR=red
+ CURRENTLINE=$(echo $CURRENTLINE | sed -r 's/\[31m//g' );;
+ \[32m) FONTCOLOR=green
+ CURRENTLINE=$(echo $CURRENTLINE | sed -r 's/\[32m//g' );;
+ \;32m) FONTCOLOR=green
+ CURRENTLINE=$(echo $CURRENTLINE | sed -r 's/\;32m//g' );;
+ \;31m) FONTCOLOR=red
+ CURRENTLINE=$(echo $CURRENTLINE | sed -r 's/\;31m//g' );;
+ \[1m) CURRENTLINE=$(echo ''$CURRENTLINE'' | sed -r 's/\[1m//g' ) ;;
+ \[0m) CURRENTLINE=$(echo $CURRENTLINE | sed -r 's/\[0m//g') ;;
+ default) FONTCOLOR=black
+ esac
+ fi
+ done
+ echo ''$CURRENTLINE'
' >> $OUTPUT_DIRECTORY_PATH/htmllog.log
+ sleep 0.2
+ else
+ sleep 5
+ let t=$t+1
+ fi
done
rm -f $LOGFILE