ni_nitdoc: added fast copy past utility to signatures.
[nit.git] / src / git-gen-version.sh
index 601b2b2..e018dc6 100755 (executable)
 # The version number is stored in a dedicated Nit module.
 
 gen_version() {
-cat > nit_version.nit<<END
+       if grep "$*" nit_version.nit >/dev/null 2>&1; then
+               :
+       else
+               cat > nit_version.nit<<END
 # This file was generated by git-gen-version.sh
 package nit_version
-meth nit_version: String do return "$*"
+fun nit_version: String do return "$*"
 END
-echo "Version $*"
+               echo "Version $*"
+       fi
 }
 
 # Are we in the nitc.nit directory?
@@ -38,14 +42,22 @@ if [ ! -f nitc.nit ]; then
        fi
 fi
 
-VN=$(git describe --tags --always HEAD)
+VN=`git describe --always HEAD 2>/dev/null`
+if [ "$?" != "0" ]; then
+       if [ -r ../VERSION ]; then
+               VN="$(cat ../VERSION)"
+       else
+               echo >&2 "Error: no VERSION file and not a .git repository."
+               exit 1
+       fi
+fi
 if [ -z "$VN" ]; then
        VN="undefined"
 fi
 if [ -n "$1" ]; then
        VN="${VN}_$1"
 fi
-if [ -n "$(git diff HEAD)" ]; then
+if [ -n "$(git diff HEAD 2>/dev/null)" ]; then
        VN="${VN}_dirty"
 fi