Added a compile time script to enforce utils/engine/tools separation.
This commit is contained in:
parent
5c9fe1a06d
commit
4d3db58c71
18
pom.xml
18
pom.xml
|
|
@ -32,6 +32,7 @@
|
||||||
<resource.bundle.skip>false</resource.bundle.skip>
|
<resource.bundle.skip>false</resource.bundle.skip>
|
||||||
<!-- TODO: Need a better a way to say "don't include hidden" by default -->
|
<!-- TODO: Need a better a way to say "don't include hidden" by default -->
|
||||||
<gatkdocs.include.hidden>-build-timestamp "${maven.build.timestamp}"</gatkdocs.include.hidden>
|
<gatkdocs.include.hidden>-build-timestamp "${maven.build.timestamp}"</gatkdocs.include.hidden>
|
||||||
|
<gatk.shell.directory>${gatk.basedir}/public/src/main/scripts/shell</gatk.shell.directory>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Phases of the build that may be disabled to speed up compilation.
|
Phases of the build that may be disabled to speed up compilation.
|
||||||
|
|
@ -623,6 +624,21 @@
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
<artifactId>exec-maven-plugin</artifactId>
|
<artifactId>exec-maven-plugin</artifactId>
|
||||||
<executions>
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<!--
|
||||||
|
TODO: Separate maven modules into separate git repos?
|
||||||
|
Until then, keep devs from accidentally mixing utils/engine/tools.
|
||||||
|
-->
|
||||||
|
<id>check-utils-engine-tools</id>
|
||||||
|
<goals>
|
||||||
|
<goal>exec</goal>
|
||||||
|
</goals>
|
||||||
|
<phase>process-sources</phase>
|
||||||
|
<inherited>false</inherited>
|
||||||
|
<configuration>
|
||||||
|
<executable>${gatk.shell.directory}/check_utils_engine_tools.sh</executable>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
<execution>
|
<execution>
|
||||||
<!--
|
<!--
|
||||||
TODO: Remove after 3.3+ release.
|
TODO: Remove after 3.3+ release.
|
||||||
|
|
@ -636,7 +652,7 @@
|
||||||
<phase>process-test-resources</phase>
|
<phase>process-test-resources</phase>
|
||||||
<inherited>false</inherited>
|
<inherited>false</inherited>
|
||||||
<configuration>
|
<configuration>
|
||||||
<executable>${gatk.basedir}/public/src/main/scripts/shell/delete_maven_links.sh</executable>
|
<executable>${gatk.shell.directory}/delete_maven_links.sh</executable>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Exit with an error if:
|
||||||
|
# - utils contains a reference to engine or tools
|
||||||
|
# - engine contains a reference to tools
|
||||||
|
|
||||||
|
sh -c \
|
||||||
|
"grep -Rn \
|
||||||
|
-e 'org.broadinstitute.gatk.tools' \
|
||||||
|
-e 'org.broadinstitute.gatk.engine' \
|
||||||
|
*/*/src/*/*/org/broadinstitute/gatk/utils | \
|
||||||
|
grep -v dependencyanalyzer && \
|
||||||
|
grep -Rn \
|
||||||
|
-e 'org.broadinstitute.gatk.tools' \
|
||||||
|
*/*/src/*/*/org/broadinstitute/gatk/engine" | \
|
||||||
|
sed -e 's/:/:'$'\x1B\x5B\x35\x6d''/2' -e 's/$/'$'\x1B\x5B\x6d''/' | \
|
||||||
|
grep gatk
|
||||||
|
|
||||||
|
RESULT=$?
|
||||||
|
if [[ ${RESULT} -eq 0 ]]; then
|
||||||
|
echo "Fix the above errors. Do not import tools nor engine into the utils, and do not import tools into the engine." >&2
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
Loading…
Reference in New Issue