diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-08-12 22:42:47 +0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-08-12 22:55:53 +0800 |
commit | c0f39d743fbdf07544a6f5b6284d7123e5c36296 (patch) | |
tree | 64470286acb80c61e711299eded0b67fd516a8b8 /version.sc | |
parent | fd9c399db8c1c0d86cc65d5e1c41968b42a813d1 (diff) | |
download | cask-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.sc | 37 |
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") + } +} |