summaryrefslogtreecommitdiff
path: root/ar/.local/bin/setfirmware
blob: 391471207a92fbac894ee51d9f3f9b991caa1155 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/sh

drives=$(lsblk -n -r -o NAME,SIZE,MOUNTPOINT | grep -E --color=always '3[0-9].*M')
drive=$(echo "$drives" | awk '{print $1}' | head -n1)
[ -z "$drive" ] && exit
echo "$drives"
drive="/dev/$drive"
printf "\n%s\n" "Target drive: $drive"
firmwarepath="${XDG_DOTFILES_DIR:-${HOME}/.dotfiles}/$(whereami)/.config/glove80"
firmware="$(find "$firmwarepath" "${XDG_DOWNLOAD_DIR:-${HOME}/Downloads}" -type f -iname '*.uf2' | sort | fzf --prompt "Choose a firmware: ")"
[ -f "$firmware" ] || exit
[ -f "$firmwarepath/$(basename "$firmware")" ] || mv "$firmware" "$firmwarepath/"
mp="/media/$USER/firmware"
[ -d "$mp" ] || mkdir -p "$mp"
sudo -A mount "$drive" "$mp"
sudo -A cp "$firmware" "$mp/"
[ -f "$firmware" ] || exit 1
ls -la "$mp"
sudo -A umount "$mp"
[ -e "$mp" ] && [ ! -s "$mp" ] && sudo -A rm -rf "$mp" || exit 1
echo "Done!"