| #!/bin/sh | 
 | #===-- tag.sh - Tag the LLVM release candidates ----------------------------===# | 
 | # | 
 | #                     The LLVM Compiler Infrastructure | 
 | # | 
 | # This file is distributed under the University of Illinois Open Source | 
 | # License. | 
 | # | 
 | #===------------------------------------------------------------------------===# | 
 | # | 
 | # Create branches and release candidates for the LLVM release. | 
 | # | 
 | #===------------------------------------------------------------------------===# | 
 |  | 
 | set -e | 
 |  | 
 | projects="llvm cfe test-suite compiler-rt libcxx libcxxabi clang-tools-extra polly lldb lld openmp libunwind" | 
 | base_url="https://llvm.org/svn/llvm-project" | 
 |  | 
 | release="" | 
 | rc="" | 
 |  | 
 | usage() { | 
 |     echo "Export the SVN sources and build tarballs from them" | 
 |     echo "usage: `basename $0`" | 
 |     echo " " | 
 |     echo "  -release <num> The version number of the release" | 
 |     echo "  -rc <num>      The release candidate number" | 
 |     echo "  -final         The final tag" | 
 | } | 
 |  | 
 | export_sources() { | 
 |     release_no_dot=`echo $release | sed -e 's,\.,,g'` | 
 |     tag_dir="tags/RELEASE_$release_no_dot/$rc" | 
 |  | 
 |     if [ "$rc" = "final" ]; then | 
 |         rc="" | 
 |     fi | 
 |  | 
 |     for proj in $projects; do | 
 |         echo "Exporting $proj ..." | 
 |         svn export \ | 
 |             $base_url/$proj/$tag_dir \ | 
 |             $proj-$release$rc.src | 
 |  | 
 |         echo "Creating tarball ..." | 
 |         tar cfJ $proj-$release$rc.src.tar.xz $proj-$release$rc.src | 
 |     done | 
 | } | 
 |  | 
 | while [ $# -gt 0 ]; do | 
 |     case $1 in | 
 |         -release | --release ) | 
 |             shift | 
 |             release=$1 | 
 |             ;; | 
 |         -rc | --rc ) | 
 |             shift | 
 |             rc="rc$1" | 
 |             ;; | 
 |         -final | --final ) | 
 |             rc="final" | 
 |             ;; | 
 |         -h | -help | --help ) | 
 |             usage | 
 |             exit 0 | 
 |             ;; | 
 |         * ) | 
 |             echo "unknown option: $1" | 
 |             usage | 
 |             exit 1 | 
 |             ;; | 
 |     esac | 
 |     shift | 
 | done | 
 |  | 
 | if [ "x$release" = "x" ]; then | 
 |     echo "error: need to specify a release version" | 
 |     exit 1 | 
 | fi | 
 |  | 
 | # Make sure umask is not overly restrictive. | 
 | umask 0022 | 
 |  | 
 | export_sources | 
 | exit 0 |