| #!/usr/bin/env bash |
| |
| # This script removes a worktree environment for LLVM and all other projects: |
| # * it removes all the worktrees and corresponding build directories |
| # * it runs git worktree prune in all the repos |
| # * it DOES NOT remove the corresponding branch |
| |
| . llvm-common |
| |
| if [ "$1" = "" -o "$2" = "" ]; then |
| echo "Usage: $0 <llvm-repo-dir> <llvm-worktree-dir>" |
| exit 1 |
| fi |
| |
| llvm_repo_dir=$1 |
| llvm_worktree_dir=$2 |
| |
| if [ ! -d $llvm_repo_dir ]; then |
| echo "Couldn't find llvm repo in $llvm_repo_dir" |
| exit 1 |
| fi |
| |
| if [ ! -d $llvm_worktree_dir ]; then |
| echo "Couldn't find llvm worktree in $llvm_worktree_dir" |
| exit 1 |
| fi |
| |
| # Clean up the worktrees (if we remove the LLVM worktree dir, all the other |
| # worktrees are removed too, so we only need to prune the repos) |
| safe_run remove_worktree $llvm_repo_dir $llvm_worktree_dir |
| safe_run remove_worktree $llvm_repo_dir/../clang |
| safe_run remove_worktree $llvm_repo_dir/../compiler-rt |
| safe_run remove_worktree $llvm_repo_dir/../lld |
| safe_run remove_worktree $llvm_repo_dir/../libcxx |
| safe_run remove_worktree $llvm_repo_dir/../libcxxabi |
| safe_run remove_worktree $llvm_repo_dir/../libunwind |
| safe_run remove_worktree $llvm_repo_dir/../lldb |
| safe_run remove_worktree $llvm_repo_dir/../test-suite |
| |
| # Clean up build directories too |
| env_root_dir=`readlink -m $llvm_worktree_dir/../` |
| echo "Removing everything in $env_root_dir" |
| safe_run rm -rf $env_root_dir |