#!/bin/bash

. sbs/exec/config/allg
. $(dirname $BASH_SOURCE)/config/functions

filetype="$vadirInput_old"
listtype=
zertifikat="Zertifikat"
case "$vadirInput_old" in
    crt) dir="$certcertdir"; listtype="x509";;
    key) dir="$certkeydir"; listtype="rsa"; zertifikat="Schlüssel";;
    csr) dir="$certcsrdir"; listtype="req";;
    ext) dir="$certextdir"; listtype="x509"; filetype="crt";;
    *) vano_vals="true";;
esac

cols="dir,data,filename,dns,valid,ca"
labels="Ordner,Daten,$zertifikat,DNS,gültig bis,CA";
json_writeheader "$cols" "$labels" "" "" ""

komma=
prog='/Issuer/ { split($0, a ,","); split(a[6], aa, " = "); ca=aa[2]; }
      /DNS:/   { split($0, a, ",");
                 for ( i in a )
                 {
                    split(a[i], aa, ":")
                    dns = dns aa[2] ",";
                 }
                 dns = substr(dns, 0, length(dns) - 1);
               }
      /Not After/ { split($0, a, ": ");
                 valid = a[2];
                 gsub(/^[ \t]+/,"",valid);
                 gsub(/[ \t]+$/,"",valid);
               }
      END { printf("dns=\"%s\"; valid=\"%s\"; ca=\"%s\";", dns, valid, ca); }'

echo '  "values"  : [ '
for filename in $(cd $dir; set +f; ls -1 *.$filetype 2>&$logfile )
do
  eval $(openssl "$listtype" -text -noout -in "$dir/$filename" | awk "$prog")
  if [ "$vawcol" = "" ] || [ "$(compare "${!vawcol}" "$vawop" "$vawval")" = "1" ]; then
    json_writedata "$vadirInput_old" "$data" "$filename" "$dns" "$valid" "$ca"
  fi
done
echo ' ] '

exit 0
