File size: 11,151 Bytes
6d12932 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 |
<?xml version="1.0" encoding="UTF-8"?>
<project name="ProcessIg">
<property name="folder.input" value="input"/>
<target name="onLoad.findSpreadsheets">
<!-- Look in all input folders that might contain spreadsheets and capture the list of spreadsheet XML files as a property -->
<fileset id="spreadsheet.contents.id" dir="${ig.root}">
<include name="${folder.input}/examples/*spreadsheet.xml"/>
<include name="${folder.input}/extensions/*spreadsheet.xml"/>
<include name="${folder.input}/models/*spreadsheet.xml"/>
<include name="${folder.input}/profiles/*spreadsheet.xml"/>
<include name="${folder.input}/resources/*spreadsheet.xml"/>
<include name="${folder.input}/structures/*spreadsheet.xml"/>
<include name="${folder.input}/vocabulary/*spreadsheet.xml"/>
</fileset>
<property name="prop.spreadsheet.contents" refid="spreadsheet.contents.id"/>
</target>
<target name="onLoad.updateIg" depends="onLoad.findSpreadsheets">
<!-- Supplement the IG file with various standard configuration files, as well as with a list of any found spreadsheets (if they're not already enumerated) -->
<xslt in="${onLoad.ig.source}xml" out="${onLoad.ig.dest}xml" style="${ig.scripts}/onLoad.xslt">
<param name="spreadsheetList" expression="${prop.spreadsheet.contents}"/>
</xslt>
</target>
<extension-point name="onLoad.extend" depends="onLoad.updateIg"/>
<target name="onLoad" depends="onLoad.extend">
<concat destfile="${ig.template}/onLoad-validation.json" encoding="UTF-8" outputencoding="UTF-8">
<header>{"resourceType":"OperationOutcome","issue":[

</header>
<footer>]}

</footer>
<filterchain>
<tailfilter lines="-1" skip="1"/>
</filterchain>
<fileset dir="${ig.template}" includes="onLoad-validation*.json"/>
</concat>
</target>
<macrodef name="getSchemas">
<attribute name="version"/>
<attribute name="url"/>
<sequential>
<mkdir dir="${dir.schemas}/@{version}"/>
<get src="@{url}fhir-single.xsd" dest="${dir.schemas}/@{version}" usetimestamp="true" ignoreerrors="true"/>
<get src="@{url}fhir-xhtml.xsd" dest="${dir.schemas}/@{version}" usetimestamp="true" ignoreerrors="true"/>
<get src="@{url}xml.xsd" dest="${dir.schemas}/@{version}" usetimestamp="true" ignoreerrors="true"/>
<get src="@{url}xmldsig-core-schema.xsd" dest="${dir.schemas}/@{version}" usetimestamp="true" ignoreerrors="true"/>
</sequential>
</macrodef>
<target name="onGenerate.checkVersions">
<xslt in="${onGenerate.ig.source}xml" out="${ig.template}/versions.txt" style="${ig.scripts}/onGenerate.getVersions.xslt"/>
<loadproperties srcfile="${ig.template}/versions.txt"/>
<condition property="dir.schemas" value="${ig.root}/../schemas" else="${ig.root}/input-cache/schemas">
<available file="${ig.root}/../schemas" type="dir"/>
</condition>
<mkdir dir="${dir.schemas}"/>
</target>
<target name="onGenerate.data">
<xslt in="${onGenerate.ig.source}xml" out="${ig.temp}/_data/artifacts.json" style="${ig.scripts}/onGenerate.data.xslt"/>
</target>
<target name="onGenerate.r5-schemas" depends="onGenerate.checkVersions" if="R5">
<getSchemas version="R5" url="http://build.fhir.org/"/>
</target>
<target name="onGenerate.r4-schemas" depends="onGenerate.checkVersions" if="R4">
<getSchemas version="R4" url="http://hl7.org/fhir/R4/"/>
</target>
<target name="onGenerate.r3-schemas" depends="onGenerate.checkVersions" if="R3">
<getSchemas version="R3" url="http://hl7.org/fhir/STU3/"/>
</target>
<target name="onGenerate.r2b-schemas" depends="onGenerate.checkVersions" if="R2B">
<getSchemas version="R2B" url="http://hl7.org/fhir/2016May/"/>
</target>
<target name="onGenerate.r2-schemas" depends="onGenerate.checkVersions" if="R2">
<getSchemas version="R2" url="http://hl7.org/fhir/DSTU2/"/>
</target>
<target name="onGenerate.schemas" depends="onGenerate.r5-schemas,onGenerate.r4-schemas,onGenerate.r3-schemas,onGenerate.r2b-schemas,onGenerate.r2-schemas"/>
<target name="onGenerate.setup">
<property name="dir.input" value="${ig.root}/${folder.input}"/>
<property name="dir.temp.includes" value="${ig.temp}/_includes" relative="yes"/>
<property name="dir.template.includes" value="${ig.template}/includes" relative="yes"/>
<loadfile property="groupings" srcFile="${ig.scripts}/groupings.txt" encoding="UTF-8"/>
</target>
<target name="check-plantumlfiles">
<condition property="ig.plantumlfiles.exist">
<and>
<available type="dir" file="${basedir}/${folder.input}/images-source"/>
<resourcecount when="greater" count="0">
<fileset file="${basedir}/${folder.input}/images-source/**.plantuml"/>
</resourcecount>
</and>
</condition>
<condition property="template.plantumlfiles.exist">
<and>
<available type="dir" file="${ig.template}/images-source"/>
<resourcecount when="greater" count="0">
<fileset file="${ig.template}/images-source/**.plantuml"/>
</resourcecount>
</and>
</condition>
</target>
<target name="onGenerate.plantUml.ig" depends="check-plantumlfiles" if="ig.plantumlfiles.exist">
<java jar="${ig.scripts}/plantuml.jar" fork="true" failonerror="true">
<jvmarg line="-Dfile.encoding=UTF-8"/>
<arg line="-nometadata -failfast2 -tsvg -o "${basedir}/${dir.temp.includes}" "${basedir}/${folder.input}/images-source/**.plantuml""/>
</java>
</target>
<target name="onGenerate.plantUml.template" depends="check-plantumlfiles" if="template.plantumlfiles.exist">
<java jar="${ig.scripts}/plantuml.jar" fork="true" failonerror="true">
<jvmarg line="-Dfile.encoding=UTF-8"/>
<arg line="-nometadata -failfast2 -tsvg -o "${basedir}/${dir.temp.includes}" "${ig.template}/images-source/**.plantuml""/>
</java>
</target>
<target name="onGenerate.plantUml" depends="onGenerate.plantUml.ig,onGenerate.plantUml.template"/>
<target name="onGenerate.infoFile" depends="onGenerate.setup">
<xslt in="${onGenerate.ig.source}xml" out="${ig.temp}/_data/info.json" style="${ig.scripts}/onGenerate.genJson.xslt"/>
</target>
<target name="onGenerate.processIg">
<xslt in="${onGenerate.ig.source}xml" out="${onGenerate.ig.source}1.xml" style="${ig.scripts}/onGenerate.group.xslt"/>
<replace file="${onGenerate.ig.source}1.xml" token="<!--TEMPLATE_GROUPS_HERE-->" value="${groupings}"/>
<xslt in="${onGenerate.ig.source}1.xml" out="${onGenerate.ig.source}2.xml" style="${ig.scripts}/onGenerate.groupSort.xslt"/>
<xslt in="${onGenerate.ig.source}2.xml" out="${onGenerate.ig.dest}xml" style="${ig.scripts}/onGenerate.final.xslt"/>
</target>
<target name="onGenerate.processIncludes" depends="onGenerate.setup">
<copy todir="${dir.temp.includes}">
<fileset dir="${dir.template.includes}" includes="*"/>
</copy>
</target>
<target name="onGenerate.igQa" depends="onGenerate.processIg">
<xslt in="${onGenerate.ig.dest}xml" out="${ig.template}/ongenerate-validation-igqa.json" style="${ig.scripts}/onGenerate.qa.xslt"/>
</target>
<target name="onGenerate.artifactList" depends="onGenerate.checkVersions,onGenerate.igQa,onGenerate.setup">
<xslt in="${onGenerate.ig.dest}xml" out="${dir.temp.includes}/artifacts.xml" style="${ig.scripts}/createArtifactSummary.xslt">
<param name="globals" expression="${globals}"/>
</xslt>
<fileset id="onGenerate.artifacts.id" dir="${ig.root}">
<include name="${dir.temp.includes}/artifacts.xml"/>
<include name="${dir.temp.includes}/*.svg"/>
</fileset>
<property name="onGenerate.artifacts.files" refid="onGenerate.artifacts.id"/>
<property name="onGenerate.files" value="${onGenerate.artifacts.files}"/>
</target>
<extension-point name="onGenerate.extend" depends="onGenerate.schemas,onGenerate.data,onGenerate.infoFile,onGenerate.processIncludes,onGenerate.artifactList,onGenerate.plantUml, onGenerate.copyDataFiles"/>
<target name="onGenerate" depends="onGenerate.extend">
<!-- <resources id="onGenerate.files.id">
<fileset refid="onGenerate.artifacts.id"/>
</resources>
<property name="onGenerate.files" refid="onGenerate.files.id"/>-->
<echo file="${ig.template}/onGenerate-validation.json" message="{"resourceType":"OperationOutcome","issue":[
"/>
<concat destfile="${ig.template}/onGenerate-validation.json" encoding="UTF-8" outputencoding="UTF-8" append="yes">
<fileset dir="${ig.template}" includes="ongenerate-validation*.json" />
<filterchain>
<tailfilter lines="-1" skip="0"/>
<!-- <tailfilter lines="-1" skip="1"/>-->
</filterchain>
</concat>
<echo file="${ig.template}/onGenerate-validation.json" message="]}
" append="yes"/>
<replace file="${ig.template}/onGenerate-validation.json" token=",]}" value="]}"/>
</target>
<scriptdef name="appendArtifacts" language="javascript" description="Adds additional values to the to the onGenerate.files list">
<attribute name="files"/>
self.project.setProperty("onGenerate.files", self.project.getProperty("onGenerate.files").concat(";").concat(attributes.get("files")));
</scriptdef>
<target name="onGenerate.copyDataFiles">
<!-- Jekyll data files from IG (input/data) or from template -->
<copy todir="${ig.temp}/_data" failonerror="false">
<fileset dir="${ig.template}/data"/>
</copy>
<!-- input/data already works, no need to add (commenting out in case we need to revisit due to conflicts and overlaps ) -->
<!--
<copy todir="${ig.temp}/_data" failonerror="false">
<fileset dir="${dir.input}/data"/>
</copy>
-->
</target>
<extension-point name="onCheck.extend"/>
<target name="onCheck" depends="onCheck.extend">
<echo file="${ig.template}/onCheck-validation.json" message="{"resourceType":"OperationOutcome","issue":[
"/>
<concat destfile="${ig.template}/onCheck-validation.json" encoding="UTF-8" outputencoding="UTF-8" append="yes">
<fileset dir="${ig.template}" includes="oncheck-validation*.json"/>
<fileset dir="${ig.template}" includes="**/*.oncheck-validation.json"/>
<filterchain>
<tailfilter lines="-1" skip="0"/>
</filterchain>
</concat>
<echo file="${ig.template}/onCheck-validation.json" message="]}
" append="yes"/>
<replace file="${ig.template}/onCheck-validation.json" token=",]}" value="]}"/>
</target>
<scriptdef name="appendArtifacts" language="javascript" description="Adds additional values to the to the onGenerate.files list">
<attribute name="files"/>
self.project.setProperty("onGenerate.files", self.project.getProperty("onGenerate.files").concat(";").concat(attributes.get("files")));
</scriptdef>
</project>
|