Newer
Older
#!/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
# 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."