Skip to content

Instantly share code, notes, and snippets.

@Duhemm
Created August 14, 2017 07:46
Show Gist options
  • Save Duhemm/7d3cb31afd11b4bca2fc114deb516533 to your computer and use it in GitHub Desktop.
Save Duhemm/7d3cb31afd11b4bca2fc114deb516533 to your computer and use it in GitHub Desktop.
#!/bin/zsh
REPOS=("guardian/frontend" \
# "Duhemm/parsermacros" \
# "apache/spark" \
# "apache/incubator-predictionio" \
# "playframework/playframework" \
# "scala/scala" \
# "shadowsocks/shadowsocks-android" \
# "akka/akka"
# "gitbucket/gitbucket"
# "twitter/finagle"
# "lhartikk/ArnoldC"
# "airbnb/aerosolve"
# "yahoo/kafka-manager"
# "mesos/chronos"
# "twitter/snowflake"
# "snowplow/snowplow"
# "mesosphere/marathon"
# "rtyley/bfg-repo-cleaner"
# "ornicar/lila"
# "fpinscala/fpinscala"
# "scalaz/scalaz"
# "sbt/sbt"
# "twitter-archive/flockdb"
# "gatling/gatling"
# "scala-js/scala-js"
# "scala-native/scala-native"
# "twitter/diffy"
# "twitter/scalding"
# "twitter-archive/kestrel"
# "spray/spray"
# "linkerd/linkerd"
"scalatra/scalatra")
clone () {
if [ -e "work/$1" ]; then
echo -n "checkout "
pushd "work/$1"
git checkout -- .
popd
else
echo -n "clone "
git clone --quiet "https://github.com/$1" "work/$1"
fi
}
addPlugin() {
mkdir -p "work/$1/project"
echo 'sbt.version=0.13.15' >> "work/$1/project/build.properties"
echo 'addSbtPlugin("ch.epfl.scala" % "sbt-migrator" % "0.1.0-SNAPSHOT")' > "work/$1/project/sbt-migrator.sbt"
}
migrateBuild() {
echo -n "migrate "
pushd "work/$1"
sbt migrateSbtBuild 2> migrator-err.log > migrator.log
result=$?
if [ $result -eq 0 ]; then
changedFiles=$(git status --porcelain | grep -Ev "\?\?|build.properties" | wc -l)
echo -n "(OK, $changedFiles files changed) "
else
echo "FAILED, see work/$1/migrator.log"
fi
return $result
}
reloadBuild() {
echo -n "reload "
sbt exit >> migrator.log
result=$?
if [ $result -eq 0 ]; then
echo "Success!"
else
echo "Resulting build doesn't compile."
fi
return $result
}
for repo in $REPOS; do
echo -n "[$repo] "
clone $repo && \
addPlugin $repo && \
migrateBuild $repo && \
reloadBuild $repo
popd
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment