Use proper exit code.
[oota-llvm.git] / utils / release / tag.sh
index 80da47a4db0d517240eff07c8b213df00ff2b4c6..5e3f69ae7542be8a183494ead9567327e37bceec 100755 (executable)
@@ -16,33 +16,41 @@ set -e
 
 release=""
 rc=""
+rebranch="no"
+projects="llvm cfe dragonegg test-suite compiler-rt libcxx clang-tools-extra polly lldb"
 
 base_url="https://llvm.org/svn/llvm-project"
 
 function usage() {
-    echo "usage: `basename $0` -release <num>"
+    echo "usage: `basename $0` -release <num> [-rebranch]"
     echo "usage: `basename $0` -release <num> -rc <num>"
     echo " "
     echo "  -release <num>  The version number of the release"
     echo "  -rc <num>       The release candidate number"
+    echo "  -rebranch       Remove existing branch, if present, before branching"
     echo "  -final          Tag final release candidate"
 }
 
 function tag_version() {
     set -x
-    for proj in llvm cfe dragonegg test-suite compiler-rt libcxx libcxxabi ; do
-        if ! svn ls $base_url/$proj/branches/release_$release > /dev/null 2>&1 ; then
-            svn copy -m "Creating release_$release branch" \
-                $base_url/$proj/trunk \
+    for proj in  $projects; do
+        if svn ls $base_url/$proj/branches/release_$release > /dev/null 2>&1 ; then
+            if [ $rebranch = "no" ]; then
+                continue
+            fi
+            svn remove -m "Removing old release_$release branch for rebranching." \
                 $base_url/$proj/branches/release_$release
         fi
+        svn copy -m "Creating release_$release branch" \
+            $base_url/$proj/trunk \
+            $base_url/$proj/branches/release_$release
     done
     set +x
 }
 
 function tag_release_candidate() {
     set -x
-    for proj in llvm cfe dragonegg test-suite compiler-rt libcxx libcxxabi ; do
+    for proj in $projects ; do
         if ! svn ls $base_url/$proj/tags/RELEASE_$release > /dev/null 2>&1 ; then
             svn mkdir -m "Creating release directory for release_$release." $base_url/$proj/tags/RELEASE_$release
         fi
@@ -65,6 +73,9 @@ while [ $# -gt 0 ]; do
             shift
             rc="rc$1"
             ;;
+        -rebranch | --rebranch )
+            rebranch="yes"
+            ;;
         -final | --final )
             rc="final"
             ;;
@@ -96,4 +107,4 @@ else
     tag_release_candidate
 fi
 
-exit 1
+exit 0