#!/bin/bash
#
# sccl_show_cluster listet alle Pakete im Script-Cluster auf
#
# Aufruf:
#
# sccl_show_clsuter
#
#
########################################################################################
#
. `dirname $0`/globals.functions
#
if [[ ! -f $PACKAGES ]]
 then
  echo "Clustername: $CLUSTER"
  echo "Clusternodes: $NODES"
  exit 1
fi
#
( for n in $NODES $SLAVENODES
   do
    echo A $n `./sccl_list_packages_on_node $n`
  done
  awk '$1 !~ "#|^$" {print "P", $0}' $PACKAGES
) | awk -v CLUSTER="$CLUSTER" '
BEGIN { ln = 8
        nn = 0
        if( length(CLUSTER) > 8 )
          lp = length(CLUSTER)
        else
          lp = 8
        np = 0
      }
$1 == "A" { n[nn++] = $2
            if( length($2) > ln )
              ln = length($2)
            for( i = 3; i <= NF; i++ )
              npa[$2":"$i] = 1
          }
$1 == "P" { p[np++] = $2
            if( length($2) > lp )
              lp = length($2)
            nps[$3":"$2] = 1
            for( i = 4; i <= NF; i++ )
              npe[$i":"$2] = 1
          }
END { printf("%-*s", lp, toupper(CLUSTER));
      lz = lp
      for( i = 0; i < nn; i++ )
      { printf(" %-*s", ln, n[i])
        lz += ln+1
      }
      printf("\n")
      for( i=0; i < lz; i++ )
        printf("-")
      printf("\n")
      for( j = 0; j < np ; j++ )
      { printf("%-*s", lp, p[j])
        for( i = 0; i < nn; i++ )
        { if( npa[n[i]":"p[j]] == 1 )
            printf("     %-*s", ln-4, "R")
          else if( nps[n[i]":"p[j]] == 1 )
            printf("     %-*s", ln-4, "-")
          else if( npe[n[i]":"p[j]] == 1 )
            printf("     %-*s", ln-4, ".")
          else
            printf(" %*s", ln, "")
        }
        printf("\n")
        for( i=0; i < lz; i++ )
          printf("-")
        printf("\n")
      }
    }
'
