#/bin/bash

EURECO="/scratch/project_2010889/eureco"
TEST="/scratch/project_2010889/TEST"

CORPUS="$EURECO/klk-fi-v2-vrt"
TEIDTD="$EURECO/tei/tei_all.dtd"

DAT="$CORPUS/data"                # input vrt files of klk-fi by year
XML="$CORPUS/XML"                 # output zipped vrtxml files of selection of newspapers
#XML="$TEST/XML"                 # output zipped vrtxml files of selection of newspapers
#TEI="$CORPUS/TEI"                 # output zipped tei files of the selection
TEI="$TEST/TEI"                 # output zipped tei files of the selection

mkdir -p $TEST
mkdir -p $XML
mkdir -p $TEI



# Multiple threads for a loop in bash:

## for stuff in things
## do
## ( something
##   with
##   stuff ) &
## done
## wait # for all the something with stuff



# Generate corpus files by year and source in vrt

# for VRT in "$DAT/*.vrt"
for VRT in "$DAT/klk_fi_v2_2021.vrt"        # to be applied to yearly files
do # (

    BASENAME=`basename $VRT .vrt`
    YY=`echo $BASENAME | gawk 'BEGIN {FS="_"} {print $4}'`
    
    #echo "Generating proper XML files from $VRT in $XML/$YY by source..."
    #gawk -v OUTDIR="$XML" -v YEAR="$YY" -f vrt2xml.awk $VRT               # will generate corpus files for different sources in the YEAR dir 

    # Checking Wellformedness of the XML and generating TEI
    # for s in $XML/*/
    for s in $XML/Suomen_Kuvalehti/
    # for s in $XML/Helsingin_Sanomat/
    # for s in $XML/Aamulehti/ $XML/Etela-Suomen_Sanomat/ $XML/Hameen_Sanomat/ $XML/Helsingin_Sanomat/ $XML/Ilkka-Pohjalainen/ $XML/Ilta-Sanomat/ $XML/Kaleva/ $XML/Keskipohjanmaa/ $XML/Satakunnan_Kansa/ $XML/Savon_Sanomat/ $XML/Turun_Sanomat/
    do # ( # threading	
	SOURCE=`basename $s`
	x=$s/$SOURCE$YY.xml
	
 	## echo "  checking wellformedness of $x"
	## xmllint --noout $x                                              # ToDo: make if condition for continuing only if well-formed
	# if($R != 0){
	#      echo "Error: xmllint error with error return code $R" >&2;   # to stderr
	#      break; 
	#  }
	      
	BASENAME=`basename $x .xml`
	mkdir -p $TEI/$SOURCE
	t="$TEI/$SOURCE/$BASENAME.tei.xml"
	t0="$TEI/$SOURCE/$BASENAME.tei.0.xml"
	
	echo "  generating $t using vrt2tei.pl, and prettifying..."
	./vrt2tei.pl $x | xml_pp > $t                               # xml_pp works but takes ages
        # xmllint --format $t0 > $t                                  # geht out of memory und --stream machen funktioniert nicht

	ls -l $t

	echo "  validating..."
	xmllint --stream --noout --dtdvalid $TEIDTD $t              # scheint so zu funktioneren - nicht kombinieren mit --format!
	
	# echo "  zipping $x..."
	# gzip -f $x
	
	# echo "  zipping $t..."
	# gzip -f $t
	
	echo # ) & 
    done
    # wait # ) &                                                    # wait does not seem to make sense if nothing follows
   
done
# wait



