Last active
June 29, 2016 11:27
-
-
Save alxschwarz/34e8cb271c7e7ce42f59cdd419dbc16f to your computer and use it in GitHub Desktop.
clang-3.8.sh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| export DEBIAN_FRONTEND=noninteractive | |
| print_status() { | |
| echo | |
| echo "## $1" | |
| echo | |
| } | |
| bail() { | |
| echo 'Error executing command, exiting' | |
| exit 1 | |
| } | |
| exec_cmd_nobail() { | |
| echo "+ $1" | |
| bash -c "$1" | |
| } | |
| exec_cmd() { | |
| exec_cmd_nobail "$1" || bail | |
| } | |
| create_clang_symlink () { | |
| if [ -f /usr/bin/clang++-3.8 ] && [ ! -L /usr/bin/clang++ ]; then | |
| sudo ln -s /usr/bin/clang++-3.8 /usr/bin/clang++ | |
| fi | |
| } | |
| create_llvm_symlink () { | |
| if [ -f /usr/bin/usr/bin/llvm-symbolizer-3.8 ] && [ ! -L /usr/bin/llvm-symbolizer ]; then | |
| sudo ln -s /usr/bin/llvm-symbolizer-3.8 /usr/bin/llvm-symbolizer | |
| fi | |
| } | |
| print_status "Removing clang and llvm packages..." | |
| exec_cmd 'sudo apt-get remove clang* -y && sudo apt-get autoremove -y' | |
| print_status "Adding llvm-3.8 repo key" | |
| if [ -x /usr/bin/curl ]; then | |
| exec_cmd 'curl -s http://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -' | |
| else | |
| exec_cmd 'wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -' | |
| fi | |
| print_status 'Creating apt sources list file for llvm repo...' | |
| exec_cmd "echo '' | sudo tee /etc/apt/sources.list.d/llvm.list" | |
| exec_cmd "echo 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.8 main' | sudo tee -a /etc/apt/sources.list.d/llvm.list" | |
| exec_cmd "echo 'deb-src http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.8 main' | sudo tee -a /etc/apt/sources.list.d/llvm.list" | |
| print_status "Updating repo metadata..." | |
| exec_cmd 'sudo apt-get update' | |
| print_status "Installing clang and llvm packages..." | |
| exec_cmd 'sudo apt-get install clang-3.8 lldb-3.8 clang-tidy-3.8 -y' | |
| print_status 'Creating symlink for clang++' | |
| create_clang_symlink | |
| print_status 'Creating symlink for llvm' | |
| create_llvm_symlink | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment