Merge: doc: fixed some typos and other misc. corrections
[nit.git] / src / git-gen-version.sh
1 #!/bin/sh
2
3 # This file is part of NIT ( http://www.nitlanguage.org ).
4 #
5 # Copyright 2008 Jean Privat <jean@pryen.org>
6 #
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
10 #
11 # http://www.apache.org/licenses/LICENSE-2.0
12 #
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
18
19 # This program is used to generate version number from git refs.
20 # The version number is stored in a dedicated Nit module.
21
22 gen_version() {
23 if ! grep "$*" version.nit >/dev/null 2>&1; then
24 cat > version.nit <<END
25 # This file was generated by git-gen-version.sh
26 module version
27 fun nit_version: String do return "$*"
28 END
29 echo "Version $*"
30 fi
31 }
32
33 # Are we in the nit.nit directory?
34 if [ ! -f nit.nit ]; then
35 if [ -f src/nit.nit ]; then
36 cd src
37 else
38 echo "Error: no nit.nit found." >&2
39 exit 1
40 fi
41 fi
42
43 VN=`git describe --always HEAD 2>/dev/null`
44 if [ "$?" != "0" ]; then
45 if [ -r ../VERSION ]; then
46 VN="$(cat ../VERSION)"
47 else
48 echo >&2 "Error: no VERSION file and not a .git repository."
49 exit 1
50 fi
51 fi
52 if [ -z "$VN" ]; then
53 VN="undefined"
54 fi
55 if [ -n "$1" ]; then
56 VN="${VN}_$1"
57 fi
58 if [ -n "$(git diff HEAD 2>/dev/null)" ]; then
59 VN="${VN}_dirty"
60 fi
61
62 gen_version "$VN"