summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.xml5
-rwxr-xr-xtools/get-scala-revision2
-rw-r--r--tools/get-scala-revision.bat42
3 files changed, 46 insertions, 3 deletions
diff --git a/build.xml b/build.xml
index 9447528a24..d4ec4b87af 100644
--- a/build.xml
+++ b/build.xml
@@ -221,9 +221,10 @@ INITIALISATION
<condition property="os.win">
<os family="windows"/>
</condition>
-
+
<exec osfamily="unix" executable="tools/get-scala-revision" outputproperty="svn.number" failifexecutionfails="false" />
- <!-- some default in case something went wrong getting the revision -->
+ <exec osfamily="windows" executable="tools/get-scala-revision.bat" outputproperty="svn.number" failifexecutionfails="false" />
+ <!-- some default in case something went wrong getting the revision -->
<property name="svn.number" value="0"/>
<property name="init.avail" value="yes"/>
diff --git a/tools/get-scala-revision b/tools/get-scala-revision
index 4d6e67f79e..8731705d06 100755
--- a/tools/get-scala-revision
+++ b/tools/get-scala-revision
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Usage: get-scala-rev [dir]
+# Usage: get-scala-revision [dir]
# Figures out current scala revision of an svn checkout or
# a git-svn mirror (or a git clone.)
#
diff --git a/tools/get-scala-revision.bat b/tools/get-scala-revision.bat
new file mode 100644
index 0000000000..c9de414cea
--- /dev/null
+++ b/tools/get-scala-revision.bat
@@ -0,0 +1,42 @@
+@echo off
+rem
+rem Usage: get-scala-revison.bat [dir]
+rem Figures out current scala revision of an svn checkout or
+rem a git-svn mirror (or a git clone.)
+rem
+rem If no dir is given, current working dir is used.
+
+if "%OS%" NEQ "Windows_NT" (
+ echo "Sorry, your version of Windows is too old to run Scala."
+ goto :eof
+)
+@setlocal
+
+set _DIR=
+if "%*"=="" (
+ for /f %%i in ('cd') do set _DIR=%%i
+) else (
+ set _DIR=%~1
+)
+cd %_DIR%
+
+if exist .svn\NUL (
+ rem 2>&1 to catch also error output (e.g. svn warnings)
+ for /f "skip=4 tokens=2" %%i in ('svn info') do (
+ echo %%i
+ goto :end
+ )
+) else ( if exist .git\NUL (
+ set _GIT_PAGER=type
+ rem this grabs more than one line because otherwise if you have local
+ rem commits which aren't in git-svn it won't see any revision.
+ rem TODO: git log -10 | findstr git-svn-id | ...
+ echo 0
+) else (
+ echo %_DIR% doesn't appear to be git or svn dir.
+ echo 0
+ exit 1
+))
+
+:end
+@endlocal