comparison get_source.sh @ 25041:9dd97886fae6

8047925: Add mercurial version checks to get_source.sh Reviewed-by: tbell, mikael
author mduigou
date Tue, 24 Jun 2014 15:21:47 -0700
parents 75a4e041b420
children fa3876203ca9
comparison
equal deleted inserted replaced
3:fc56ea4e6e0e 4:195321c97493
1 #!/bin/sh 1 #!/bin/sh
2 2
3 # 3 #
4 # Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. 4 # Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
5 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 # 6 #
7 # This code is free software; you can redistribute it and/or modify it 7 # This code is free software; you can redistribute it and/or modify it
8 # under the terms of the GNU General Public License version 2 only, as 8 # under the terms of the GNU General Public License version 2 only, as
9 # published by the Free Software Foundation. Oracle designates this 9 # published by the Free Software Foundation. Oracle designates this
23 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 23 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
24 # or visit www.oracle.com if you need additional information or have any 24 # or visit www.oracle.com if you need additional information or have any
25 # questions. 25 # questions.
26 # 26 #
27 27
28 # Get clones of all nested repositories 28 # Version check
29 sh ./common/bin/hgforest.sh clone "$@" || exit 1 29
30 # required
31 reqdmajor=1
32 reqdminor=5
33 reqdrev=0
34
35 # requested
36 rqstmajor=2
37 rqstminor=6
38 rqstrev=3
39
40 # installed
41 hgwhere="`which hg 2> /dev/null | grep -v '^no hg in '`"
42 if [ "x$hgwhere" = "x" ]; then
43 echo "ERROR: Could not locate Mercurial command" >&2
44 exit 126
45 fi
46
47 hgversion="`hg --version 2> /dev/null | sed -n -e 's@^Mercurial Distributed SCM (version \(.*\))\$@\1@p'`"
48 if [ "x${hgversion}" = "x" ] ; then
49 echo "ERROR: Could not determine Mercurial version" >&2
50 exit 126
51 fi
52
53 hgmajor="`echo $hgversion | cut -f 1 -d .`"
54 hgminor="`echo $hgversion | cut -f 2 -d .`"
55 hgrev="`echo $hgversion.0 | cut -f 3 -d .`" # rev is omitted for minor and major releases
56
57 # Require
58 if [ $hgmajor -lt $reqdmajor -o \( $hgmajor -eq $reqdmajor -a $hgminor -lt $reqdminor \) -o \( $hgmajor -eq $reqdmajor -a $hgminor -eq $reqdminor -a $hgrev -lt $reqdrev \) ] ; then
59 echo "ERROR: Mercurial version $reqdmajor.$reqdminor.$reqdrev or later is required. $hgwhere is version $hgversion" >&2
60 exit 126
61 fi
62
63 # Request
64 if [ $hgmajor -lt $rqstmajor -o \( $hgmajor -eq $rqstmajor -a $hgminor -lt $rqstminor \) -o \( $hgmajor -eq $rqstmajor -a $hgminor -eq $rqstminor -a $hgrev -lt $rqstrev \) ] ; then
65 echo "WARNING: Mercurial version $rqstmajor.$rqstminor.$rqstrev or later is recommended. $hgwhere is version $hgversion" >&2
66 fi
67
68 # Get clones of all absent nested repositories (harmless if already exist)
69 sh ./common/bin/hgforest.sh clone "$@" || exit $?
30 70
31 # Update all existing repositories to the latest sources 71 # Update all existing repositories to the latest sources
32 sh ./common/bin/hgforest.sh pull -u 72 sh ./common/bin/hgforest.sh pull -u
33