mirror of
https://github.com/jimeh/dotfiles.git
synced 2026-02-19 10:46: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"
|
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
|
# Helper functions
|
||||||
#
|
#
|
||||||
@@ -269,6 +273,9 @@ case "$1" in
|
|||||||
rbenv)
|
rbenv)
|
||||||
install_rbenv
|
install_rbenv
|
||||||
;;
|
;;
|
||||||
|
rustup | rust)
|
||||||
|
install_rustup
|
||||||
|
;;
|
||||||
launch_agents | launch-agents | agents)
|
launch_agents | launch-agents | agents)
|
||||||
install_launch_agents
|
install_launch_agents
|
||||||
;;
|
;;
|
||||||
|
|||||||
89
zsh/rust.zsh
89
zsh/rust.zsh
@@ -2,13 +2,86 @@
|
|||||||
# Rust environment setup.
|
# Rust environment setup.
|
||||||
#
|
#
|
||||||
|
|
||||||
install_rust_global_packages() {
|
# ==============================================================================
|
||||||
local packages=(
|
# aliases
|
||||||
rls
|
# ==============================================================================
|
||||||
rust-analysis
|
|
||||||
rust-src
|
|
||||||
rustfmt
|
|
||||||
)
|
|
||||||
|
|
||||||
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"
|
path_prepend "$HOME/.rbenv/shims"
|
||||||
|
|
||||||
# Rust setup
|
# Rust setup
|
||||||
|
export RUSTUP_HOME="$HOME/.rustup"
|
||||||
export CARGO_HOME="$HOME/.cargo"
|
export CARGO_HOME="$HOME/.cargo"
|
||||||
path_prepend "$CARGO_HOME/bin"
|
path_prepend "$CARGO_HOME/bin"
|
||||||
|
|
||||||
|
export RUST_BACKTRACE=1
|
||||||
|
if command-exists sccache; then
|
||||||
|
export RUSTC_WRAPPER=sccache
|
||||||
|
fi
|
||||||
|
|
||||||
# RTX shim setup
|
# RTX shim setup
|
||||||
path_prepend "$HOME/.rtx/shims"
|
path_prepend "$HOME/.rtx/shims"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user