forked from scala/scala
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupdatescalacheck
executable file
·130 lines (113 loc) · 2.59 KB
/
updatescalacheck
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#
#
# ScalaCheck update script.
#
#
# vars
TMPFILE=`mktemp`
SCALACHECK_REL_DIR=src/scalacheck
DESC="Updates ScalaCheck sources from ScalaCheck nightly branch."
WARN="Make sure your repository checkout is clean. Will remove and delete existing ScalaCheck source in <path-to-scala-repo>/$SCALACHECK_REL_DIR!"
USAGE=" Usage: updatescalacheck <path-to-scala-repo>"
# functions
function error() {
rm $TMPFILE
exit 1
}
function success() {
rm $TMPFILE
exit 0
}
# check num args
if [ $# -ne 1 ]
then
echo $DESC
echo $WARN
echo "Must provide path to scala repo checkout dir."
echo $USAGE
error
fi
if [[ $1 = "--help" ]]
then
echo $DESC
echo $WARN
echo $USAGE
error
fi
if [ ! -d $1 ]
then
echo "The folder $1 does not exist."
error
fi
# go to scala dir
SCALA_DIR=$1
cd $SCALA_DIR
#
# check if checkout is svn and up to date
# otherwise check if its git and up to date
#
if [ -d .svn ] || [ -d _svn ]
then
#
# svn repo - check if clean
#
svn status > $TMPFILE
if [ $? -ne 0 ]
then
echo "Detected .svn dir, but svn status returns an error. Check if this is really an .svn repo."
error
fi
echo "svn status output: "
cat $TMPFILE
echo "grep found: "
cat $TMPFILE | grep "^\(?\|A\|D\|M\|C\|!\|~\)"
GREPRETCODE=$?
echo "grep return code: $GREPRETCODE"
if [ $GREPRETCODE -eq 0 ]
then
echo "Working directory does not seem to be clean. Do a clean checkout and try again."
error
fi
echo "Checkout appears to be clean."
elif [ -d .git ]
then
#
# git repo - check if clean
#
git status --porcelain > $TMPFILE
if [ $? -ne 0 ]
then
echo "Detected .git dir, but git status returns an error. Check if this is really a .git repo."
error
fi
echo "git status output: "
cat $TMPFILE
echo "grep found: "
cat $TMPFILE | grep "^\(A\|M\|D\|R\|C\|U\)"
GREPRETCODE=$?
echo "grep return code: $GREPRETCODE"
if [ $GREPRETCODE -eq 0 ]
then
echo "Working directory does not seem to be clean. Do a clean checkout and try again."
error
fi
echo "Checkout appears to be clean."
else
# no repo detected
echo "The directory $SCALA_DIR does not seem to be a repository."
error
fi
# check if ScalaCheck source dir exists
if [ ! -d $SCALACHECK_REL_DIR ]
then
echo "ScalaCheck source dir does not seem to exist in: $SCALA_DIR/$SCALACHECK_REL_DIR"
echo "Please create one and try again."
error
fi
# go to ScalaCheck source dir
cd $SCALACHECK_DIR
# update sources
svn export --force https://scalacheck.googlecode.com/svn/branches/scalanightly/src/main/scala .
# remove unneeded class
rm org/scalacheck/ScalaCheckFramework.scala
success