summaryrefslogtreecommitdiff
path: root/version.sc
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-08-12 22:42:47 +0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-08-12 22:55:53 +0800
commitc0f39d743fbdf07544a6f5b6284d7123e5c36296 (patch)
tree64470286acb80c61e711299eded0b67fd516a8b8 /version.sc
parentfd9c399db8c1c0d86cc65d5e1c41968b42a813d1 (diff)
downloadcask-c0f39d743fbdf07544a6f5b6284d7123e5c36296.tar.gz
cask-c0f39d743fbdf07544a6f5b6284d7123e5c36296.tar.bz2
cask-c0f39d743fbdf07544a6f5b6284d7123e5c36296.zip
auto publishing of docs w/ example downloads works
Diffstat (limited to 'version.sc')
-rw-r--r--version.sc37
1 files changed, 37 insertions, 0 deletions
diff --git a/version.sc b/version.sc
new file mode 100644
index 0000000..4e73530
--- /dev/null
+++ b/version.sc
@@ -0,0 +1,37 @@
+import ammonite.ops.{%%, pwd}
+
+val isMasterCommit = {
+ sys.env.get("TRAVIS_PULL_REQUEST") == Some("false") &&
+ (sys.env.get("TRAVIS_BRANCH") == Some("master") || sys.env("TRAVIS_TAG") != "")
+}
+
+def gitHead =
+ sys.env.get("TRAVIS_COMMIT").getOrElse(
+ %%('git, "rev-parse", "HEAD")(pwd).out.string.trim()
+ )
+
+
+
+def publishVersion = {
+ val tag =
+ try Option(
+ %%('git, 'describe, "--exact-match", "--tags", "--always", gitHead)(pwd).out.string.trim()
+ )
+ catch{case e => None}
+
+ val dirtySuffix = %%('git, 'diff)(pwd).out.string.trim() match{
+ case "" => ""
+ case s => "-DIRTY" + Integer.toHexString(s.hashCode)
+ }
+
+ tag match{
+ case Some(t) => (t, t)
+ case None =>
+ val latestTaggedVersion = %%('git, 'describe, "--abbrev=0", "--always", "--tags")(pwd).out.trim
+
+ val commitsSinceLastTag =
+ %%('git, "rev-list", gitHead, "--not", latestTaggedVersion, "--count")(pwd).out.trim.toInt
+
+ (latestTaggedVersion, s"$latestTaggedVersion-$commitsSinceLastTag-${gitHead.take(6)}$dirtySuffix")
+ }
+}