--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/config/source-archive.gradle Fri May 08 21:33:19 2020 -0400
@@ -0,0 +1,38 @@
+task sourceArchive {
+ description "Get the source archive of the project"
+}
+
+sourceArchive.doLast {
+ makeSourceArchive(rootProject.name)
+}
+
+project.build.dependsOn sourceArchive
+
+def makeSourceArchive(String projectName) {
+ def git = new File(".git")
+ def hg = new File(".hg")
+ def tag
+ if (git.exists()) {
+ tag = getGitSha1()
+ println("Building source archive \"${projectName}-src-${tag}.zip\" from git")
+ exec {
+ workingDir project.rootDir
+ commandLine "git", "archive", "--format=zip", "--prefix=${projectName}-src-${tag}/", "-o", "${projectName}-src-${tag}.zip", "HEAD"
+ }
+ } else if (hg.exists()) {
+ tag = getHgSha1()
+ println("Building source archive \"${projectName}-src-${tag}.zip\" from hg")
+ exec {
+ workingDir project.rootDir
+ commandLine "hg", "archive", "-t", "zip", "-r", tag, "${projectName}-src-${tag}.zip"
+ }
+ }
+}
+
+def getGitSha1() {
+ return 'git rev-parse HEAD'.execute().text.trim()
+}
+
+def getHgSha1() {
+ return 'hg id --debug -i -r .'.execute().text.trim()
+}