diff --git a/40-services b/40-services index 1b7a5f2..aa3cd45 100755 --- a/40-services +++ b/40-services @@ -2,31 +2,33 @@ export LANG='en_US.UTF-8' # set column width -COLUMNS=2 +COLUMNS=3 # colors green="\e[1;32m" red="\e[1;31m" undim="\e[0m" -services=( "smartd" "plexmediaserver" "docker" "smbd") +declare -A services +services["nginx"]="Nginx" +services["docker"]="Docker" +services["sshd"]="SSH" +services["plexmediaserver"]="Plex" +services["openvpn-server@server"]="OVPN-server" +services["smbd"]="Samba" +services["smartd"]="Smart" # sort services -IFS=$'\n' services=($(sort <<<"${services[*]}")) -unset IFS - -service_status=() -# get status of all services -for service in "${services[@]}"; do - service_status+=($(systemctl is-active "$service")) -done - -for i in ${!services[@]}; do +k=0 +out="" +for i in "${!services[@]}"; do + ((k++)) # color green if service is active, else red - if [[ "${service_status[$i]}" == "active" ]]; then + service_status=($(systemctl is-active "$i")) + if [[ "${service_status}" == "active" ]]; then out+="${services[$i]}:,${green}▲${undim}," else out+="${services[$i]}:,${red}▼${undim}," fi # insert \n every $COLUMNS column - if [ $((($i+1) % $COLUMNS)) -eq 0 ]; then + if [ $((($k) % $COLUMNS)) -eq 0 ]; then out+="\n" fi done @@ -34,3 +36,4 @@ out+="\n" printf "\nservices:\n" printf "$out" | column -ts $',' | sed -e 's/^/ /' +# printf "$services" \ No newline at end of file