diff --git a/project/VersionUtil.scala b/project/VersionUtil.scala index 399a468591c8..f4770d7eb478 100644 --- a/project/VersionUtil.scala +++ b/project/VersionUtil.scala @@ -4,7 +4,7 @@ object VersionUtil { def executeScript(scriptName: String) = { val cmd = if (System.getProperty("os.name").toLowerCase.contains("windows")) - s"cmd.exe /c project\\scripts\\build\\$scriptName.bat -p" + s"cmd.exe /c project\\scripts\\build\\$scriptName.bat" else s"project/scripts/build/$scriptName" Process(cmd).lines.head.trim } diff --git a/project/scripts/build/get-scala-commit-date b/project/scripts/build/get-scala-commit-date index ef5b0f540da7..38f4c94a25c8 100755 --- a/project/scripts/build/get-scala-commit-date +++ b/project/scripts/build/get-scala-commit-date @@ -8,9 +8,13 @@ # 20120312 # -[[ $# -eq 0 ]] || cd "$1" +# Exit immediately if any command returns a non-zero status. +set -eo pipefail -lastcommitdate=$(git log --format="%ci" HEAD | head -n 1 | cut -d ' ' -f 1) +[[ $# -eq 0 ]] || cd "$1" -# 20120324 -echo "${lastcommitdate//-/}" +# A better version could use `git log -n 1 --pretty='format:%cd' --date=format:'%Y%m%d'`. +# But it requires everybody to use Git v2.6.0 or above. +last_commit_date=$(git log -1 --format="%ci" HEAD | cut -d ' ' -f 1) +# remove "-" +echo "${last_commit_date//-/}" diff --git a/project/scripts/build/get-scala-commit-date.bat b/project/scripts/build/get-scala-commit-date.bat index 735a80b927f3..3c67bc679a73 100644 --- a/project/scripts/build/get-scala-commit-date.bat +++ b/project/scripts/build/get-scala-commit-date.bat @@ -1,9 +1,12 @@ @echo off -for %%X in (bash.exe) do (set FOUND=%%~$PATH:X) -if defined FOUND ( - bash "%~dp0\get-scala-commit-date" 2>NUL -) else ( - rem echo this script does not work with cmd.exe. please, install bash - echo unknown - exit 1 -) +rem See more documentation in the corresponding Shell script. + +if not [%1]==[] cd /d %1 + +for /f "delims=" %%s in ('git log -1 --format^=""%%ci"" HEAD') do set last_commit_date_time=%%s +rem If some errors happen; e.g. Git is not installed. +if not defined last_commit_date_time exit 1 +rem remove time +for /f "tokens=1 delims= " %%s in ("%last_commit_date_time%") do set last_commit_date=%%s +rem remove "-" +echo %last_commit_date:-=% diff --git a/project/scripts/build/get-scala-commit-sha b/project/scripts/build/get-scala-commit-sha index eab90a4215fc..1a623bc29a96 100755 --- a/project/scripts/build/get-scala-commit-sha +++ b/project/scripts/build/get-scala-commit-sha @@ -5,14 +5,13 @@ # If no dir is given, current working dir is used. # # Example build version string: -# 6f1c486d0ba +# b01f13ec4a3ac15e5e922cc0019169e8563ffc8d # +# Exit immediately if any command returns a non-zero status. +set -eo pipefail + [[ $# -eq 0 ]] || cd "$1" -# printf %016s is not portable for 0-padding, has to be a digit. -# so we're stuck disassembling it. hash=$(git log -1 --format="%H" HEAD) -hash=${hash#g} -hash=${hash:0:10} echo "$hash" diff --git a/project/scripts/build/get-scala-commit-sha.bat b/project/scripts/build/get-scala-commit-sha.bat index 6559a191201c..cbf0b613c623 100644 --- a/project/scripts/build/get-scala-commit-sha.bat +++ b/project/scripts/build/get-scala-commit-sha.bat @@ -1,9 +1,9 @@ @echo off -for %%X in (bash.exe) do (set FOUND=%%~$PATH:X) -if defined FOUND ( - bash "%~dp0\get-scala-commit-sha" 2>NUL -) else ( - rem echo this script does not work with cmd.exe. please, install bash - echo unknown - exit 1 -) +rem See more documentation in the corresponding Shell script. + +if not [%1]==[] cd /d %1 + +for /f "delims=" %%s in ('git log -1 --format^=""%%H"" HEAD') do set hash=%%s +rem If some errors happen; e.g. Git is not installed. +if not defined hash exit 1 +echo %hash%