summaryrefslogtreecommitdiff
path: root/tools/updatescalacheck
blob: c4b80dd963ab503773bfb1b2fb402fec407ea182 (plain) (blame)
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