dot dot dotfiles
1#!/usr/bin/bash
2
3NC='\033[0m'
4# RED='\033[0;31m' # red
5GRN='\033[0;32m' # green, or 1;32m for light green
6YEL='\033[0;33m'
7ARR='\u2192' # right arrow
8DASH='\u2014'
9
10echo -e "${GRN}╔═══╗╔╗ ╔╗╔═══╗╔════╗╔═══╗╔═╗╔═╗ ╔╗ ╔╗╔═══╗╔═══╗╔═══╗╔════╗╔═══╗${NC}"
11echo -e "${GRN}║╔═╗║║╚╗╔╝║║╔═╗║║╔╗╔╗║║╔══╝║║╚╝║║ ║║ ║║║╔═╗║╚╗╔╗║║╔═╗║║╔╗╔╗║║╔══╝${NC}"
12echo -e "${GRN}║╚══╗╚╗╚╝╔╝║╚══╗╚╝║║╚╝║╚══╗║╔╗╔╗║ ║║ ║║║╚═╝║ ║║║║║║ ║║╚╝║║╚╝║╚══╗${NC}"
13echo -e "${GRN}╚══╗║ ╚╗╔╝ ╚══╗║ ║║ ║╔══╝║║║║║║ ║║ ║║║╔══╝ ║║║║║╚═╝║ ║║ ║╔══╝${NC}"
14echo -e "${GRN}║╚═╝║ ║║ ║╚═╝║ ╔╝╚╗ ║╚══╗║║║║║║ ║╚═╝║║║ ╔╝╚╝║║╔═╗║ ╔╝╚╗ ║╚══╗${NC}"
15echo -e "${GRN}╚═══╝ ╚╝ ╚═══╝ ╚══╝ ╚═══╝╚╝╚╝╚╝ ╚═══╝╚╝ ╚═══╝╚╝ ╚╝ ╚══╝ ╚═══╝${NC}"
16echo ""
17echo -e "${YEL}${DASH}${DASH}${ARR} ${NC}Enter/Default: All${NC}"
18echo -e " ${NC} 1: pacman${NC}"
19echo -e " ${NC} 2: AUR via paru${NC}"
20echo -e " ${NC} 3: cargo via rustup${NC}"
21echo -e " ${NC} 4: R packages${NC}"
22echo -e " ${NC} 5: LazyVim packages${NC}"
23echo -e " ${NC} l: List all paru updates${NC}"
24echo -e "${GRN}---------------------------------------------------${NC}"
25
26doit() {
27 echo -e -n "${YEL}Proceed to update $1 (y/n)?${NC} "
28 read DOIT
29 if [ "$DOIT" != "y" ]; then
30 echo -e "${YEL}Stopping update${NC}"
31 exit 0
32 fi
33}
34
35updateParu() {
36 paru -Syu --ignore v8-r
37}
38
39updatePacman() {
40 sudo pacman -Syu
41}
42
43updateCargo() {
44 sudo rustup update
45}
46
47updateR() {
48 echo 'update.packages(ask=FALSE)' | sudo R --no-save -q
49}
50
51updateNvim() {
52 nvim --headless "+Lazy! sync" +qa
53 nvim --headless "+TSUpdate" +qa
54}
55
56echo -e -n "${YEL}Enter option:${NC} "
57read OPT
58
59if [[ -z "$OPT" ]]; then
60 doit "everything (paru, cargo, R packages, and neovim)"
61 updateParu && updateCargo && updateR && updateNvim
62elif [ "$OPT" == 1 ]; then
63 doit "pacman"
64 updatePacman
65elif [ "$OPT" == 2 ]; then
66 doit "paru"
67 updateParu
68elif [ "$OPT" == 3 ]; then
69 doit "cargo"
70 updateCargo
71elif [ "$OPT" == 4 ]; then
72 doit "R packages"
73 updateR
74elif [ "$OPT" == 5 ]; then
75 doit "neovim"
76 updateNvim
77elif [ "$OPT" == l ]; then
78 paru -Qu
79else
80 echo "Unknown option"
81 exit 1
82fi