Skip to content
Snippets Groups Projects
ammacatch-process.sh 1.82 KiB
Newer Older
bourgesl's avatar
bourgesl committed
#!/bin/bash

PROJECT=AMMA-CATCH

CONF=../conf/$PROJECT
INPUT=$CONF/datasets/
STAGING=../staging/$PROJECT
TMP=../tmp/$PROJECT
TMP_DS=$TMP/datasets
TMP_DOI=$TMP/doi

RES=../resources
XSD=$RES/xsd
XSL=$RES/xsl

rm -rf $TMP
mkdir -p $TMP_DS
mkdir -p $TMP_DOI
mkdir -p $STAGING
bourgesl's avatar
bourgesl committed

# 0. Process dataset inputs (csv):
for f in `find $INPUT -maxdepth 1 -name '*.csv'`; do 
     filename=`basename $f`
     echo "processing $filename"

bourgesl's avatar
bourgesl committed
     java $JAVA_OPTS -jar doi-csv-trunk-full.jar -v 2 -templates $CONF/templates/ -input $f -output $TMP_DS -skipMerge -xml
bourgesl's avatar
bourgesl committed

     if [ $? -ne 0 ]; then
          echo "step 0: java failed"
          exit 1
     fi
done


# 1. GetRecords from bd.amma-catch.org:
wget -O $TMP/getRecords.xml "http://bd.amma-catch.org/amma-catchWS2/WS/csw/default?service=CSW&request=GetRecords&version=2.0.2&typenames=csw:Record&resulttype=results&maxrecords=100&elementsetname=summary&outputschema=http://www.isotc211.org/2005/gmd"

xsltproc -o $TMP/getRecords.csv --stringparam DOI_SUFFIX_START "$PROJECT" $XSL/csw2txt.xsl $TMP/getRecords.xml

if [ $? -ne 0 ]; then
     echo "step 1: xsltproc failed"
     exit 1
fi


# 2. Process CSV records to XML:
# -v 2 to set log level to WARNING:
bourgesl's avatar
bourgesl committed
java $JAVA_OPTS -jar doi-csv-trunk-full.jar -v 2 -templates $CONF/templates/ -input $TMP/getRecords.csv -output $TMP_DS -xml
bourgesl's avatar
bourgesl committed

if [ $? -ne 0 ]; then
     echo "step 2: java failed"
     exit 1
fi


# 3. Convert XML to DOI:
for f in `find $TMP_DS -maxdepth 1 -name '*.xml'`; do 
     filename=`basename $f`
     echo "step 3: processing $filename"
     xsltproc -o $TMP_DOI/$filename $XSL/xml2doi.xsl $f

     # validates xml:
     xmllint --noout --schema $XSD/metadata.xsd $TMP_DOI/$filename

     if [ $? -eq 0 ]; then
          cp $TMP_DOI/$filename $STAGING/$filename
     else
          echo "step 3: validation failed: $TMP_DOI/$filename"
     fi
done

echo "done."