| #!/bin/bash |
| 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 |