summaryrefslogtreecommitdiff
path: root/install_rust_tools
blob: 910a51a6f19f3ee4af6fe95532a83391c3deb967 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/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