1 #!/bin/sh 2 #===-- tag.sh - Tag the LLVM release candidates ----------------------------===# 3 # 4 # The LLVM Compiler Infrastructure 5 # 6 # This file is distributed under the University of Illinois Open Source 7 # License. 8 # 9 #===------------------------------------------------------------------------===# 10 # 11 # Create branches and release candidates for the LLVM release. 12 # 13 #===------------------------------------------------------------------------===# 14 15 set -e 16 17 release="" 18 rc="" 19 20 base_url="https://llvm.org/svn/llvm-project" 21 22 function usage() { 23 echo "usage: `basename $0` -release <num>" 24 echo "usage: `basename $0` -release <num> -rc <num>" 25 echo " " 26 echo " -release <num> The version number of the release" 27 echo " -rc <num> The release candidate number" 28 } 29 30 function tag_version() { 31 set -x 32 for proj in llvm cfe dragonegg test-suite compiler-rt libcxx libcxxabi ; do 33 if ! svn ls $base_url/$proj/branches/release_$release > /dev/null 2>&1 ; then 34 svn copy -m "Creating release_$release branch" \ 35 $base_url/$proj/trunk \ 36 $base_url/$proj/branches/release_$release 37 fi 38 done 39 set +x 40 } 41 42 function tag_release_candidate() { 43 set -x 44 for proj in llvm cfe dragonegg test-suite compiler-rt libcxx libcxxabi ; do 45 if ! svn ls $base_url/$proj/tags/RELEASE_$release > /dev/null 2>&1 ; then 46 svn mkdir -m "Creating release directory for release_$release." $base_url/$proj/tags/RELEASE_$release 47 fi 48 if ! svn ls $base_url/$proj/tags/RELEASE_$release/rc$rc > /dev/null 2>&1 ; then 49 svn copy -m "Creating release candidate $rc from release_$release branch" \ 50 $base_url/$proj/branches/release_$release \ 51 $base_url/$proj/tags/RELEASE_$release/rc$rc 52 fi 53 done 54 set +x 55 } 56 57 while [ $# -gt 0 ]; do 58 case $1 in 59 -release | --release ) 60 shift 61 release=$1 62 ;; 63 -rc | --rc ) 64 shift 65 rc=$1 66 ;; 67 -h | --help | -help ) 68 usage 69 exit 0 70 ;; 71 * ) 72 echo "unknown option: $1" 73 usage 74 exit 1 75 ;; 76 esac 77 shift 78 done 79 80 if [ "x$release" = "x" ]; then 81 echo "error: need to specify a release version" 82 echo 83 usage 84 exit 1 85 fi 86 87 release=`echo $release | sed -e 's,\.,,g'` 88 89 if [ "x$rc" = "x" ]; then 90 tag_version 91 else 92 tag_release_candidate 93 fi 94 95 exit 1 96