#!/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 # 0. Process dataset inputs (csv): for f in `find $INPUT -maxdepth 1 -name '*.csv'`; do filename=`basename $f` echo "processing $filename" java $JAVA_OPTS -jar doi-csv-trunk-full.jar -v 2 -templates $CONF/templates/ -input $f -output $TMP_DS -skipMerge -xml 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: java $JAVA_OPTS -jar doi-csv-trunk-full.jar -v 2 -templates $CONF/templates/ -input $TMP/getRecords.csv -output $TMP_DS -xml 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."