tbold=$(tput setf 3) bold=$(tput setf 2) bold1=$(tput setf 2) offbold=$(tput rmso;tput sgr0) function pad { #echo "1 is $1 2 is $2" if [ "$1" == "" ] then $1 = ""; fi let count=0 curr_len=`expr length "$1"` let space_length=$2-$curr_len spaces="" while [ $count -lt $space_length ] do spaces="$spaces " let count=$count+1 done echo "$1$spaces" } function isRunning { echo $(curl -I "$1" 2>/dev/null|head -1|tail -1|awk '{print $2}') } dirName=$(pwd) options=($(ls -l $dirName/releases|grep ^d|awk '{print $NF}'|sort)) echo "$(pad RELEASE 15)$(pad URL 30)$(pad Status 10)" echo "$(pad '----' 15)$(pad '---' 30)$(pad '------' 10)" for opt in "${options[@]}" do releaseDir="$opt" if [ -e "./releases/${opt}/customSettings.js" ] then pid=$(cat ./releases/$releaseDir/logs/process_pid 2>/dev/null) port=$(cat ./releases/$releaseDir/customSettings.js 2>/dev/null|grep uiPort|sed -e 's/[, ]//g'|cut -d: -f2) resp1=$(isRunning "http://localhost:$port") if [ "$resp1" == "401" ] then echo "$(pad $releaseDir 15)$(pad http://localhost:$port 30)${bold}$(pad running 10)${offbold}" else processId=$(netstat -upltn 2>/dev/null|grep $port|awk '{print $NF}'|sed -e 's%/node-red%%g') if [ "$processId" == "" ] then echo "$(pad $releaseDir 15)$(pad http://localhost:$port 30)${bold}$(pad stopped 10)${offbold}" else echo "$(pad $releaseDir 15)$(pad http://localhost:$port 30)${bold}$(pad running 10)${offbold}" fi fi fi done