mirror of
https://github.com/jimeh/dotfiles.git
synced 2026-02-19 03:06:40 +00:00
feat(rust): improve overall setup around Rust
This commit is contained in:
@@ -119,6 +119,10 @@ install_emacs_config() {
|
||||
git_clone 'git@github.com:jimeh/.emacs.d.git' "$TARGET/.config/emacs-siren"
|
||||
}
|
||||
|
||||
install_rustup() {
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
}
|
||||
|
||||
#
|
||||
# Helper functions
|
||||
#
|
||||
@@ -269,6 +273,9 @@ case "$1" in
|
||||
rbenv)
|
||||
install_rbenv
|
||||
;;
|
||||
rustup | rust)
|
||||
install_rustup
|
||||
;;
|
||||
launch_agents | launch-agents | agents)
|
||||
install_launch_agents
|
||||
;;
|
||||
|
||||
89
zsh/rust.zsh
89
zsh/rust.zsh
@@ -2,13 +2,86 @@
|
||||
# Rust environment setup.
|
||||
#
|
||||
|
||||
install_rust_global_packages() {
|
||||
local packages=(
|
||||
rls
|
||||
rust-analysis
|
||||
rust-src
|
||||
rustfmt
|
||||
)
|
||||
# ==============================================================================
|
||||
# aliases
|
||||
# ==============================================================================
|
||||
|
||||
rustup component add "${packages[@]}"
|
||||
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
|
||||
)
|
||||
}
|
||||
|
||||
6
zshenv
6
zshenv
@@ -184,9 +184,15 @@ path_prepend "/opt/tmux/bin"
|
||||
path_prepend "$HOME/.rbenv/shims"
|
||||
|
||||
# Rust setup
|
||||
export RUSTUP_HOME="$HOME/.rustup"
|
||||
export CARGO_HOME="$HOME/.cargo"
|
||||
path_prepend "$CARGO_HOME/bin"
|
||||
|
||||
export RUST_BACKTRACE=1
|
||||
if command-exists sccache; then
|
||||
export RUSTC_WRAPPER=sccache
|
||||
fi
|
||||
|
||||
# RTX shim setup
|
||||
path_prepend "$HOME/.rtx/shims"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user