60-docker 700 B

1234567891011121314151617181920212223242526272829
  1. #!/bin/bash
  2. # set column width
  3. COLUMNS=2
  4. # colors
  5. green="\e[1;32m"
  6. red="\e[1;31m"
  7. undim="\e[0m"
  8. mapfile -t containers < <(docker ps -a --format '{{.Names}}\t{{.Status}}' | awk '{ print $1,$2 }')
  9. out=""
  10. for i in "${!containers[@]}"; do
  11. IFS=" " read name status <<< ${containers[i]}
  12. # color green if service is active, else red
  13. if [[ "${status}" == "Up" ]]; then
  14. out+="${name}:,${green}${status,,}${undim},"
  15. else
  16. out+="${name}:,${red}${status,,}${undim},"
  17. fi
  18. # insert \n every $COLUMNS column
  19. if [ $((($i+1) % $COLUMNS)) -eq 0 ]; then
  20. out+="\n"
  21. fi
  22. done
  23. out+="\n"
  24. printf "\ndocker status:\n"
  25. printf "$out" | column -ts $',' | sed -e 's/^/ /'