legacy-svn-scala/tools/updatescalacheck

131 lines
2.6 KiB
Plaintext
Executable File

#
#
# 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