Skip to content

Instantly share code, notes, and snippets.

@LukasKalbertodt
Created July 17, 2016 18:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save LukasKalbertodt/4bee64e48a123a61bb25f861a46e7888 to your computer and use it in GitHub Desktop.
Save LukasKalbertodt/4bee64e48a123a61bb25f861a46e7888 to your computer and use it in GitHub Desktop.
#!/bin/bash
TMP_PATH=/tmp/rust-blast-off-$(date +%s)
mkdir $TMP_PATH
### install rustup in tmp dir ###
echo "========================================="
echo "=== Just press Enter soon ;-) ==="
echo "========================================="
HOME_BACKUP=$HOME
HOME=$TMP_PATH
curl https://sh.rustup.rs -sSf | sh
HOME=$HOME_BACKUP
### backup old stuff ###
echo "=== I will backup old .cargo and .multirust folders"
echo "=== as .cargo_bu and .multirust_bu"
if [ -e $HOME/.cargo ]
then
mv $HOME/.cargo $HOME/.cargo-bu-$(date +%s)
fi
if [ -e $HOME/.multirust ]
then
mv $HOME/.multirust $HOME/.multirust-bu-$(date +%s)
fi
### init cargo dir ###
mkdir $HOME/.cargo
cp $TMP_PATH/.cargo/env $HOME/.cargo/env
mkdir -p /local/.cargo/bin
cp -r $TMP_PATH/.cargo/bin/* /local/.cargo/bin
mkdir -p /local/.cargo/registry
ln -s /local/.cargo/bin $HOME/.cargo/bin
ln -s /local/.cargo/registry $HOME/.cargo/registry
### init .multirust dir ###
mkdir $HOME/.multirust/
cp $TMP_PATH/.multirust/settings.toml $HOME/.multirust/
cp -r $TMP_PATH/.multirust/update-hashes $HOME/.multirust/
mkdir -p /local/.multirust/toolchains
cp -r $TMP_PATH/.multirust/toolchains/* /local/.multirust/toolchains
ln -s /local/.multirust/toolchains $HOME/.multirust/toolchains
### add PATH stuff to .profile
echo "export PATH=\"/local/.cargo/bin:$PATH\"" >> $HOME/.profile
echo "Rust should be installed..."
### installing stuff ###
echo "Installing more stuff, this could take a while"
source $HOME/.cargo/env
cargo install rustfmt
cargo install cargo-edit
cargo install racer
cargo install cargo-check
cargo install cargo-outdated
### downloading rust source for racer ###
wget -O /local/source.tar.gz https://static.rust-lang.org/dist/rustc-1.10.0-src.tar.gz
tar -xzf /local/source.tar.gz
mv rustc-1.10.0 rustc-src
echo "export RUST_SRC_PATH=/local/rustc-src/src" >> .profile
### set to 777 because it's shared ###
chmod -R 777 /local/.cargo
chmod -R 777 /local/.multirust
chmod -R 777 /local/rustc-src
### finished ###
echo "========================================="
echo "=== Everything should be set up... ==="
echo "=== Please log out and in again :) ==="
echo "========================================="
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment