| 1234567891011121314151617181920212223242526272829 |
- #!/bin/bash
- # set column width
- COLUMNS=2
- # colors
- green="\e[1;32m"
- red="\e[1;31m"
- undim="\e[0m"
- mapfile -t containers < <(docker ps -a --format '{{.Names}}\t{{.Status}}' | awk '{ print $1,$2 }')
- out=""
- for i in "${!containers[@]}"; do
- IFS=" " read name status <<< ${containers[i]}
- # color green if service is active, else red
- if [[ "${status}" == "Up" ]]; then
- out+="${name}:,${green}${status,,}${undim},"
- else
- out+="${name}:,${red}${status,,}${undim},"
- fi
- # insert \n every $COLUMNS column
- if [ $((($i+1) % $COLUMNS)) -eq 0 ]; then
- out+="\n"
- fi
- done
- out+="\n"
- printf "\ndocker status:\n"
- printf "$out" | column -ts $',' | sed -e 's/^/ /'
|