Files
dotfiles/zsh/rust.zsh

88 lines
2.0 KiB
Bash

#
# Rust environment setup.
#
# ==============================================================================
# aliases
# ==============================================================================
alias c="cargo"
if command-exists exa; then
alias ll="exa -lagHS --color-scale --icons --git"
alias llt="ll --tree"
fi
if command-exists bat; then
alias cat="bat -P"
fi
# ==============================================================================
# completions
# ==============================================================================
if command-exists rustup; then
_rustup() {
unset -f _rustup
eval "$(rustup completions zsh)"
}
compctl -K _rustup rustup
if command-exists cargo; then
_cargo() {
unset -f _cargo
eval "$(rustup completions zsh cargo)"
}
compctl -K _cargo cargo
fi
fi
# ==============================================================================
# global rust packages
# ==============================================================================
install_rust_global_packages() {
(
set -e
if ! command-exists rustup; then
read -q "REPLY?Rustup was not found. Install it? [y/N] " &&
echo &&
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
fi
if ! command-exists rustup; then
echo "Rustup was not found. Aborting."
return 1
fi
rustup component add \
clippy \
rust-analyzer \
rust-src \
rustfmt
# Install or update cargo-binstall
if ! command-exists cargo-binstall; then
RUSTC_WRAPPER="${commands[sccache]}" cargo install cargo-binstall
fi
# Install sccache before the rest of the packages.
if ! command-exists sccache; then
RUSTC_WRAPPER="" cargo binstall sccache
fi
RUSTC_WRAPPER=sccache cargo binstall cargo-quickinstall
RUSTC_WRAPPER=sccache cargo quickinstall \
cargo-audit \
cargo-info
RUSTC_WRAPPER=sccache cargo binstall \
cargo-update \
cargo-edit \
bacon \
dirstat-rs
)
}