summaryrefslogblamecommitdiff
path: root/install_rust_tools
blob: 910a51a6f19f3ee4af6fe95532a83391c3deb967 (plain) (tree)
1
2
3
           

                                
























                                                                                                
#!/bin/bash
# dotfiles -- install_rust_tools
# author: johannst

if ! which cargo &> /dev/null; then
    echo "There is no cargo installed, checkout:"
    echo "    https://rustup.rs/"
    exit 1
fi

tools=()
tools+=("bat")
tools+=("exa")
tools+=("fd-find")
tools+=("ripgrep")

for tool in ${tools[@]}; do
   installed_vers=$(cargo install --list | grep "^$tool" | awk '{ print $2 }' | sed 's/[v:]//g')
   [[ ! -z $installed_vers ]] && {
      update_vers=$(cargo search --limit 1 $tool | awk 'NR==1 { print $3 }' | sed 's/"//g')
      [[ $installed_vers == $update_vers ]] && { continue; }
      echo ">>> update $tool $installed_vers -> $update_vers? [yYnN]"
      read reply
      [[ $reply  =~ ^[^Yy]$ ]] && { continue; }
   }
   cargo install --force $tool
done