1*5a6e8488SAndroid Build Coastguard Worker#!/bin/sh 2*5a6e8488SAndroid Build Coastguard Worker# 3*5a6e8488SAndroid Build Coastguard Worker# SPDX-License-Identifier: BSD-2-Clause 4*5a6e8488SAndroid Build Coastguard Worker# 5*5a6e8488SAndroid Build Coastguard Worker# Copyright (c) 2018-2024 Gavin D. Howard and contributors. 6*5a6e8488SAndroid Build Coastguard Worker# 7*5a6e8488SAndroid Build Coastguard Worker# Redistribution and use in source and binary forms, with or without 8*5a6e8488SAndroid Build Coastguard Worker# modification, are permitted provided that the following conditions are met: 9*5a6e8488SAndroid Build Coastguard Worker# 10*5a6e8488SAndroid Build Coastguard Worker# * Redistributions of source code must retain the above copyright notice, this 11*5a6e8488SAndroid Build Coastguard Worker# list of conditions and the following disclaimer. 12*5a6e8488SAndroid Build Coastguard Worker# 13*5a6e8488SAndroid Build Coastguard Worker# * Redistributions in binary form must reproduce the above copyright notice, 14*5a6e8488SAndroid Build Coastguard Worker# this list of conditions and the following disclaimer in the documentation 15*5a6e8488SAndroid Build Coastguard Worker# and/or other materials provided with the distribution. 16*5a6e8488SAndroid Build Coastguard Worker# 17*5a6e8488SAndroid Build Coastguard Worker# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18*5a6e8488SAndroid Build Coastguard Worker# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19*5a6e8488SAndroid Build Coastguard Worker# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20*5a6e8488SAndroid Build Coastguard Worker# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 21*5a6e8488SAndroid Build Coastguard Worker# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22*5a6e8488SAndroid Build Coastguard Worker# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23*5a6e8488SAndroid Build Coastguard Worker# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24*5a6e8488SAndroid Build Coastguard Worker# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25*5a6e8488SAndroid Build Coastguard Worker# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26*5a6e8488SAndroid Build Coastguard Worker# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27*5a6e8488SAndroid Build Coastguard Worker# POSSIBILITY OF SUCH DAMAGE. 28*5a6e8488SAndroid Build Coastguard Worker# 29*5a6e8488SAndroid Build Coastguard Worker 30*5a6e8488SAndroid Build Coastguard Worker# This script requires some non-POSIX utilities, but that's okay because it's 31*5a6e8488SAndroid Build Coastguard Worker# really for maintainer use only. 32*5a6e8488SAndroid Build Coastguard Worker# 33*5a6e8488SAndroid Build Coastguard Worker# The non-POSIX utilities include: 34*5a6e8488SAndroid Build Coastguard Worker# 35*5a6e8488SAndroid Build Coastguard Worker# * git 36*5a6e8488SAndroid Build Coastguard Worker# * stat 37*5a6e8488SAndroid Build Coastguard Worker# * tar 38*5a6e8488SAndroid Build Coastguard Worker# * gzip 39*5a6e8488SAndroid Build Coastguard Worker# * xz 40*5a6e8488SAndroid Build Coastguard Worker# * sha512sum 41*5a6e8488SAndroid Build Coastguard Worker# * sha256sum 42*5a6e8488SAndroid Build Coastguard Worker# * gpg 43*5a6e8488SAndroid Build Coastguard Worker# * zip 44*5a6e8488SAndroid Build Coastguard Worker# * unzip 45*5a6e8488SAndroid Build Coastguard Worker 46*5a6e8488SAndroid Build Coastguard Workershasum() { 47*5a6e8488SAndroid Build Coastguard Worker 48*5a6e8488SAndroid Build Coastguard Worker f="$1" 49*5a6e8488SAndroid Build Coastguard Worker shift 50*5a6e8488SAndroid Build Coastguard Worker 51*5a6e8488SAndroid Build Coastguard Worker # All this fancy stuff takes the sha512 and sha256 sums and signs it. The 52*5a6e8488SAndroid Build Coastguard Worker # output after this point is what I usually copy into the release notes. 53*5a6e8488SAndroid Build Coastguard Worker # (See manuals/release.md for more information.) 54*5a6e8488SAndroid Build Coastguard Worker printf '$ sha512sum %s\n' "$f" 55*5a6e8488SAndroid Build Coastguard Worker sha512sum "$f" 56*5a6e8488SAndroid Build Coastguard Worker printf '\n' 57*5a6e8488SAndroid Build Coastguard Worker printf '$ sha256sum %s\n' "$f" 58*5a6e8488SAndroid Build Coastguard Worker sha256sum "$f" 59*5a6e8488SAndroid Build Coastguard Worker printf '\n' 60*5a6e8488SAndroid Build Coastguard Worker printf "$ stat -c '%%s %%n'\n" "$f" 61*5a6e8488SAndroid Build Coastguard Worker stat -c '%s %n' "$f" 62*5a6e8488SAndroid Build Coastguard Worker 63*5a6e8488SAndroid Build Coastguard Worker if [ -f "$f.sig" ]; then 64*5a6e8488SAndroid Build Coastguard Worker rm -f "$f.sig" 65*5a6e8488SAndroid Build Coastguard Worker fi 66*5a6e8488SAndroid Build Coastguard Worker 67*5a6e8488SAndroid Build Coastguard Worker gpg --detach-sig -o "$f.sig" "$f" 2> /dev/null 68*5a6e8488SAndroid Build Coastguard Worker 69*5a6e8488SAndroid Build Coastguard Worker printf '\n' 70*5a6e8488SAndroid Build Coastguard Worker printf '$ sha512sum %s.sig\n' "$f" 71*5a6e8488SAndroid Build Coastguard Worker sha512sum "$f.sig" 72*5a6e8488SAndroid Build Coastguard Worker printf '\n' 73*5a6e8488SAndroid Build Coastguard Worker printf '$ sha256sum %s.sig\n' "$f" 74*5a6e8488SAndroid Build Coastguard Worker sha256sum "$f.sig" 75*5a6e8488SAndroid Build Coastguard Worker printf '\n' 76*5a6e8488SAndroid Build Coastguard Worker printf "$ stat -c '%%s %%n'\n" "$f.sig" 77*5a6e8488SAndroid Build Coastguard Worker stat -c '%s %n' "$f.sig" 78*5a6e8488SAndroid Build Coastguard Worker} 79*5a6e8488SAndroid Build Coastguard Worker 80*5a6e8488SAndroid Build Coastguard Workerscript="$0" 81*5a6e8488SAndroid Build Coastguard Workerscriptdir=$(dirname "$script") 82*5a6e8488SAndroid Build Coastguard Worker 83*5a6e8488SAndroid Build Coastguard Worker. "$scriptdir/functions.sh" 84*5a6e8488SAndroid Build Coastguard Worker 85*5a6e8488SAndroid Build Coastguard Workerrepo="$scriptdir/.." 86*5a6e8488SAndroid Build Coastguard Workerproj="bc" 87*5a6e8488SAndroid Build Coastguard Worker 88*5a6e8488SAndroid Build Coastguard Workercd "$repo" 89*5a6e8488SAndroid Build Coastguard Worker 90*5a6e8488SAndroid Build Coastguard Workerif [ ! -f "../vs.zip" ]; then 91*5a6e8488SAndroid Build Coastguard Worker printf 'Must have Windows builds!\n' 92*5a6e8488SAndroid Build Coastguard Worker exit 1 93*5a6e8488SAndroid Build Coastguard Workerfi 94*5a6e8488SAndroid Build Coastguard Worker 95*5a6e8488SAndroid Build Coastguard Worker# We want the absolute path for later. 96*5a6e8488SAndroid Build Coastguard Workerrepo=$(pwd) 97*5a6e8488SAndroid Build Coastguard Worker 98*5a6e8488SAndroid Build Coastguard Worker# This convoluted mess does pull the version out. If you change the format of 99*5a6e8488SAndroid Build Coastguard Worker# include/version.h, you may have to change this line. 100*5a6e8488SAndroid Build Coastguard Workerversion=$(cat include/version.h | grep "VERSION " - | awk '{ print $3 }' -) 101*5a6e8488SAndroid Build Coastguard Worker 102*5a6e8488SAndroid Build Coastguard Workertag_msg="Version $version" 103*5a6e8488SAndroid Build Coastguard Workerprojver="${proj}-${version}" 104*5a6e8488SAndroid Build Coastguard Worker 105*5a6e8488SAndroid Build Coastguard Workertempdir="/tmp/${projver}" 106*5a6e8488SAndroid Build Coastguard Workerrm -rf $tempdir 107*5a6e8488SAndroid Build Coastguard Workermkdir -p $tempdir 108*5a6e8488SAndroid Build Coastguard Worker 109*5a6e8488SAndroid Build Coastguard Workermake clean_tests > /dev/null 2> /dev/null 110*5a6e8488SAndroid Build Coastguard Worker 111*5a6e8488SAndroid Build Coastguard Worker# Delete the tag and recreate it. This is the part of the script that makes it 112*5a6e8488SAndroid Build Coastguard Worker# so you cannot run it twice on the same version, unless you know what you are 113*5a6e8488SAndroid Build Coastguard Worker# doing. In fact, you cannot run it again if users have already started to use 114*5a6e8488SAndroid Build Coastguard Worker# the old version of the tag. 115*5a6e8488SAndroid Build Coastguard Workerif git rev-parse "$version" > /dev/null 2>&1; then 116*5a6e8488SAndroid Build Coastguard Worker git push --delete origin "$version" > /dev/null 2> /dev/null 117*5a6e8488SAndroid Build Coastguard Worker git tag --delete "$version" > /dev/null 2> /dev/null 118*5a6e8488SAndroid Build Coastguard Workerfi 119*5a6e8488SAndroid Build Coastguard Worker 120*5a6e8488SAndroid Build Coastguard Workergit push > /dev/null 2> /dev/null 121*5a6e8488SAndroid Build Coastguard Workergit tg "$version" -m "$tag_msg" > /dev/null 2> /dev/null 122*5a6e8488SAndroid Build Coastguard Workergit push --tags > /dev/null 2> /dev/null 123*5a6e8488SAndroid Build Coastguard Worker 124*5a6e8488SAndroid Build Coastguard Worker# This line grabs the names of all of the files in .gitignore that still exist. 125*5a6e8488SAndroid Build Coastguard Workerignores=$(git check-ignore * **/*) 126*5a6e8488SAndroid Build Coastguard Worker 127*5a6e8488SAndroid Build Coastguard Workercp -r ./* "$tempdir" 128*5a6e8488SAndroid Build Coastguard Worker 129*5a6e8488SAndroid Build Coastguard Workercd $tempdir 130*5a6e8488SAndroid Build Coastguard Worker 131*5a6e8488SAndroid Build Coastguard Worker# Delete all the ignored files. 132*5a6e8488SAndroid Build Coastguard Workerfor i in $ignores; do 133*5a6e8488SAndroid Build Coastguard Worker rm -rf "./$i" 134*5a6e8488SAndroid Build Coastguard Workerdone 135*5a6e8488SAndroid Build Coastguard Worker 136*5a6e8488SAndroid Build Coastguard Worker# This is a list of files that end users (including *software packagers* and 137*5a6e8488SAndroid Build Coastguard Worker# *distro maintainers*!) do not care about. In particular, they *do* care about 138*5a6e8488SAndroid Build Coastguard Worker# the testing infrastructure for the regular test suite because distro 139*5a6e8488SAndroid Build Coastguard Worker# maintainers probably want to ensure the test suite runs. However, they 140*5a6e8488SAndroid Build Coastguard Worker# probably don't care about fuzzing or other randomized testing. Also, I 141*5a6e8488SAndroid Build Coastguard Worker# technically can't distribute tests/bc/scripts/timeconst.bc because it's from 142*5a6e8488SAndroid Build Coastguard Worker# the Linux kernel, which is GPL. 143*5a6e8488SAndroid Build Coastguard Workerextras=$(cat <<*EOF 144*5a6e8488SAndroid Build Coastguard Worker.git/ 145*5a6e8488SAndroid Build Coastguard Worker.gitignore 146*5a6e8488SAndroid Build Coastguard Worker.gitattributes 147*5a6e8488SAndroid Build Coastguard Workerbenchmarks/ 148*5a6e8488SAndroid Build Coastguard Workermanuals/bc.1.md.in 149*5a6e8488SAndroid Build Coastguard Workermanuals/dc.1.md.in 150*5a6e8488SAndroid Build Coastguard Workermanuals/benchmarks.md 151*5a6e8488SAndroid Build Coastguard Workermanuals/development.md 152*5a6e8488SAndroid Build Coastguard Workermanuals/header_bcl.txt 153*5a6e8488SAndroid Build Coastguard Workermanuals/header_bc.txt 154*5a6e8488SAndroid Build Coastguard Workermanuals/header_dc.txt 155*5a6e8488SAndroid Build Coastguard Workermanuals/header.txt 156*5a6e8488SAndroid Build Coastguard Workermanuals/release.md 157*5a6e8488SAndroid Build Coastguard Workerscripts/afl.py 158*5a6e8488SAndroid Build Coastguard Workerscripts/alloc.sh 159*5a6e8488SAndroid Build Coastguard Workerscripts/benchmark.sh 160*5a6e8488SAndroid Build Coastguard Workerscripts/bitfuncgen.c 161*5a6e8488SAndroid Build Coastguard Workerscripts/fuzz_prep.sh 162*5a6e8488SAndroid Build Coastguard Workerscripts/manpage.sh 163*5a6e8488SAndroid Build Coastguard Workerscripts/ministat.c 164*5a6e8488SAndroid Build Coastguard Workerscripts/package.sh 165*5a6e8488SAndroid Build Coastguard Workerscripts/radamsa.sh 166*5a6e8488SAndroid Build Coastguard Workerscripts/radamsa.txt 167*5a6e8488SAndroid Build Coastguard Workerscripts/randmath.py 168*5a6e8488SAndroid Build Coastguard Workerscripts/release_settings.txt 169*5a6e8488SAndroid Build Coastguard Workerscripts/release.sh 170*5a6e8488SAndroid Build Coastguard Workerscripts/test_settings.sh 171*5a6e8488SAndroid Build Coastguard Workerscripts/test_settings.txt 172*5a6e8488SAndroid Build Coastguard Workertests/bc_outputs/ 173*5a6e8488SAndroid Build Coastguard Workertests/dc_outputs/ 174*5a6e8488SAndroid Build Coastguard Workertests/fuzzing/ 175*5a6e8488SAndroid Build Coastguard Workertests/bc/scripts/timeconst.bc 176*5a6e8488SAndroid Build Coastguard Worker*EOF 177*5a6e8488SAndroid Build Coastguard Worker) 178*5a6e8488SAndroid Build Coastguard Worker 179*5a6e8488SAndroid Build Coastguard Workerfor i in $extras; do 180*5a6e8488SAndroid Build Coastguard Worker rm -rf "./$i" 181*5a6e8488SAndroid Build Coastguard Workerdone 182*5a6e8488SAndroid Build Coastguard Worker 183*5a6e8488SAndroid Build Coastguard Workercd .. 184*5a6e8488SAndroid Build Coastguard Worker 185*5a6e8488SAndroid Build Coastguard Workerparent="$repo/.." 186*5a6e8488SAndroid Build Coastguard Worker 187*5a6e8488SAndroid Build Coastguard Worker# Cleanup old stuff. 188*5a6e8488SAndroid Build Coastguard Workerif [ -f "$projver.tar.gz" ]; then 189*5a6e8488SAndroid Build Coastguard Worker rm -rf "$projver.tar.gz" 190*5a6e8488SAndroid Build Coastguard Workerfi 191*5a6e8488SAndroid Build Coastguard Worker 192*5a6e8488SAndroid Build Coastguard Workerif [ -f "$projver.tar.gz.sig" ]; then 193*5a6e8488SAndroid Build Coastguard Worker rm -rf "$projver.tar.gz.sig" 194*5a6e8488SAndroid Build Coastguard Workerfi 195*5a6e8488SAndroid Build Coastguard Worker 196*5a6e8488SAndroid Build Coastguard Workerif [ -f "$projver.tar.xz" ]; then 197*5a6e8488SAndroid Build Coastguard Worker rm -rf "$projver.tar.xz" 198*5a6e8488SAndroid Build Coastguard Workerfi 199*5a6e8488SAndroid Build Coastguard Worker 200*5a6e8488SAndroid Build Coastguard Workerif [ -f "$projver.tar.xz.sig" ]; then 201*5a6e8488SAndroid Build Coastguard Worker rm -rf "$projver.tar.xz.sig" 202*5a6e8488SAndroid Build Coastguard Workerfi 203*5a6e8488SAndroid Build Coastguard Worker 204*5a6e8488SAndroid Build Coastguard Worker# Tar and compress and move into the parent directory of the repo. 205*5a6e8488SAndroid Build Coastguard Workertar cf "$projver.tar" "$projver/" 206*5a6e8488SAndroid Build Coastguard Workergzip -k "$projver.tar" 207*5a6e8488SAndroid Build Coastguard Workermv "$projver.tar.gz" "$parent" 208*5a6e8488SAndroid Build Coastguard Workerxz -z -v -9 -e "$projver.tar" > /dev/null 2> /dev/null 209*5a6e8488SAndroid Build Coastguard Workermv "$projver.tar.xz" "$parent" 210*5a6e8488SAndroid Build Coastguard Worker 211*5a6e8488SAndroid Build Coastguard Workercd "$parent" 212*5a6e8488SAndroid Build Coastguard Worker 213*5a6e8488SAndroid Build Coastguard Worker# Clean up old Windows stuff. 214*5a6e8488SAndroid Build Coastguard Workerif [ -d windows ]; then 215*5a6e8488SAndroid Build Coastguard Worker rm -rf windows 216*5a6e8488SAndroid Build Coastguard Workerfi 217*5a6e8488SAndroid Build Coastguard Worker 218*5a6e8488SAndroid Build Coastguard Workerif [ -f windows.zip ]; then 219*5a6e8488SAndroid Build Coastguard Worker rm -rf $projver-windows.zip 220*5a6e8488SAndroid Build Coastguard Workerfi 221*5a6e8488SAndroid Build Coastguard Worker 222*5a6e8488SAndroid Build Coastguard Worker# Prepare Windows stuff. 223*5a6e8488SAndroid Build Coastguard Workerunzip vs.zip > /dev/null 224*5a6e8488SAndroid Build Coastguard Workermv vs windows 225*5a6e8488SAndroid Build Coastguard Worker 226*5a6e8488SAndroid Build Coastguard Worker# Remove unneeded Windows stuff. 227*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/*.vcxproj.user 228*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/src2 229*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/tests 230*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/*.sln 231*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/*.vcxproj 232*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/*.vcxproj.filters 233*5a6e8488SAndroid Build Coastguard Worker 234*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/*.obj 235*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/*.iobj 236*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/bc.exe.recipe 237*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/bc.ilk 238*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/bc.log 239*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/bc.tlog 240*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/bc.pdb 241*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/bc.ipdb 242*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/bc.vcxproj.FileListAbsolute.txt 243*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/bc.Build.CppClean.log 244*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/strgen.exe 245*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/vc142.idb 246*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/vc142.pdb 247*5a6e8488SAndroid Build Coastguard Worker 248*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/lib/{Win32,x64}/{Debug,ReleaseMD,ReleaseMT}/*.obj 249*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/lib/{Win32,x64}/{Debug,ReleaseMD,ReleaseMT}/bcl.lib.recipe 250*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/lib/{Win32,x64}/{Debug,ReleaseMD,ReleaseMT}/bcl.log 251*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/lib/{Win32,x64}/{Debug,ReleaseMD,ReleaseMT}/bcl.tlog 252*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/lib/{Win32,x64}/{Debug,ReleaseMD,ReleaseMT}/bcl.idb 253*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/lib/{Win32,x64}/{Debug,ReleaseMD,ReleaseMT}/bcl.pdb 254*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/lib/{Win32,x64}/{Debug,ReleaseMD,ReleaseMT}/bcl.vcxproj.FileListAbsolute.txt 255*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/lib/{Win32,x64}/{Debug,ReleaseMD,ReleaseMT}/bcl.Build.CppClean.log 256*5a6e8488SAndroid Build Coastguard Worker 257*5a6e8488SAndroid Build Coastguard Worker# Zip the Windows stuff. 258*5a6e8488SAndroid Build Coastguard Workerzip -r $projver-windows.zip windows > /dev/null 259*5a6e8488SAndroid Build Coastguard Worker 260*5a6e8488SAndroid Build Coastguard Workerprintf '\n' 261*5a6e8488SAndroid Build Coastguard Workershasum "$projver.tar.gz" 262*5a6e8488SAndroid Build Coastguard Workerprintf '\n' 263*5a6e8488SAndroid Build Coastguard Workershasum "$projver.tar.xz" 264*5a6e8488SAndroid Build Coastguard Workerprintf '\n' 265*5a6e8488SAndroid Build Coastguard Workershasum "$projver-windows.zip" 266*5a6e8488SAndroid Build Coastguard Worker 267*5a6e8488SAndroid Build Coastguard Workermkdir -p "releases/$projver" 268*5a6e8488SAndroid Build Coastguard Workermv $projver* "releases/$projver" 269*5a6e8488SAndroid Build Coastguard Worker 270*5a6e8488SAndroid Build Coastguard Worker# Clean up old Windows stuff. 271*5a6e8488SAndroid Build Coastguard Workerif [ -d windows ]; then 272*5a6e8488SAndroid Build Coastguard Worker rm -rf windows 273*5a6e8488SAndroid Build Coastguard Workerfi 274*5a6e8488SAndroid Build Coastguard Worker 275*5a6e8488SAndroid Build Coastguard Workerif [ -f vs.zip ]; then 276*5a6e8488SAndroid Build Coastguard Worker rm -rf vs.zip 277*5a6e8488SAndroid Build Coastguard Workerfi 278