diff --git a/local/bin/dfm b/local/bin/dfm index 8e2b9a5..644423c 100755 --- a/local/bin/dfm +++ b/local/bin/dfm @@ -28,6 +28,7 @@ function section_install MENU=( "all:Installs everything in the correct order" "antigen:Updates the antigen.zsh file" + "cargo:Install rust/cargo packages" "cheat-databases:Install cheat external cheatsheet databases" "composer:Install composer" "dotenv:Install dotenv-linter" @@ -48,6 +49,7 @@ function section_install $0 install macos $0 install antigen $0 brew install + $0 install cargo $0 install composer $0 install dotenv $0 install fzf @@ -65,6 +67,10 @@ function section_install curl -sSfL git.io/antigen -o "$DOTFILES/local/bin/antigen.zsh" \ && msg_yay "New antigen installed!" ;; + cargo) + bash "$DOTFILES/scripts/install-cargo-packages.sh" \ + && msg_yay "cargo packages installed!" + ;; cheat-databases) for database in "$DOTFILES"/scripts/install-cheat-*; do bash "$database" \ diff --git a/scripts/install-cargo-packages.sh b/scripts/install-cargo-packages.sh new file mode 100755 index 0000000..45c8409 --- /dev/null +++ b/scripts/install-cargo-packages.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +# Install cargo/rust packages. +# +# shellcheck source=shared.sh +source "$HOME/.dotfiles/scripts/shared.sh" + +! have cargo && { + msg "cargo could not be found. installing cargo with rustup.rs" + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh +} + +packages=( + # a subprocess caching utility + "bkt" + # a structural diff that understands syntax + "difftastic" +) + +for pkg in "${packages[@]}"; do + # Trim spaces + pkg=${pkg// /} + # Skip comments + if [[ ${pkg:0:1} == "#" ]]; then continue; fi + + cargo install $pkg + + echo "" +done