data4impact/apps/data4impact-import-scripts/scripts/guidelines/guidelines.sh

68 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
#detailsFile=../../orig/guidelines/guidelines.json
detailsFile=/tmp/guidelines.json
workdir=/tmp/guidelines
rm -rf "$workdir" && mkdir "$workdir"
echo
echo "Guidelines Import:"
#--------------------------------
echo " - Generating csv files"
csvGuidelines="$workdir/guidelines.csv"
csvRels="$workdir/rels.csv"
csvAllRels="$workdir/allRels.csv"
cat $detailsFile | jq 'map([.LocalID, .Type, .Title, .PubYear, .Originator, .ProviderCollection, .Abstract, .PMID, .DOI, .PMCID])' | jq .[] | jq -r @csv > $csvGuidelines
cat $detailsFile | jq -r '.[] | .LocalID as $id | (.MatchedReferences | map([$id, (.PMID + ""), (.PMCID + ""), (.DOI + "") , ( .Funders | map(.+"#") | add | . + "" ) ]) )[] | @csv' > $csvRels
cat $detailsFile | jq -r '.[] | .LocalID as $id | (.AllReferences | map([$id, .]) )[] | @csv' > $csvAllRels
#--------------------------------
echo " - Recreating the guidelines database"
dropdb guidelines --if-exists;
createdb guidelines;
psql guidelines -f schema.sql
if [[ -f "$csvGuidelines" ]]; then
echo " - Importing guidelines: $csvGuidelines"
psql guidelines -c "COPY guidelines(id, gtype, title, year, orig, collection, abstract, pmid, doi, pmcid) FROM '$csvGuidelines' CSV;"
else
echo " - Invalid file: $csvGuidelines"
fi
if [[ -f "$csvRels" ]]; then
echo " - Importing rels: $csvRels"
psql guidelines -c "COPY relations(gid, pmid, pmcid, doi, funder) FROM '$csvRels' CSV;"
else
echo " - Invalid file: $csvRels"
fi
if [[ -f "$csvAllRels" ]]; then
echo " - Importing all rels: $csvAllRels"
psql guidelines -c "COPY allrefs(gid, rel) FROM '$csvAllRels' CSV;"
else
echo " - Invalid file: $csvAllRels"
fi
#--------------------------------
echo " - Generating json files"
rm -f ../../jsonfiles/guidelines/*.json
psql guidelines -f document2json.sql | sed 's/\\\\/\\/g' > ../../jsonfiles/guidelines/document.json
psql guidelines -f docOtherId2json.sql | sed 's/\\\\/\\/g' > ../../jsonfiles/guidelines/docotherid.json
psql guidelines -f projects2json.sql | sed 's/\\\\/\\/g' > ../../jsonfiles/guidelines/project.json
psql guidelines -f projDocOtherIds2json.sql | sed 's/\\\\/\\/g' > ../../jsonfiles/guidelines/projectdocotherid.json
psql guidelines -f docDocumentOtherId2json.sql | sed 's/\\\\/\\/g' > ../../jsonfiles/guidelines/docDocumentOtherId.json
#--------------------------------
echo " - Importing final files"
cd ../../jsonfiles/guidelines
echo "Done."
echo