tools: generate version number and give it to tools
[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 cat > nit_version.nit<<END
24 # This file was generated by git-gen-version.sh
25 package nit_version
26 meth nit_version: String do return "$*"
27 END
28 echo "Version $*"
29 }
30
31 # Are we in the nitc.nit directory?
32 if [ ! -f nitc.nit ]; then
33 if [ -f src/nitc.nit ]; then
34 cd src
35 else
36 echo "Error: no nitc.nit found." >&2
37 exit 1
38 fi
39 fi
40
41 VN=$(git describe --tags --always HEAD)
42 if [ -z "$VN" ]; then
43 VN="undefined"
44 fi
45 if [ -n "$1" ]; then
46 VN="${VN}_$1"
47 fi
48 if [ -n "$(git diff HEAD)" ]; then
49 VN="${VN}_dirty"
50 fi
51
52 gen_version "$VN"