main
 1#!/usr/bin/env bash
 2set -eufo pipefail
 3
 4cPWD="$(dirname "$(readlink -f "$0")")"
 5# shellcheck disable=SC1091
 6source "${cPWD}/lib/functions.sh"
 7
 8function build() {
 9	tar -cf - Dockerfile build.yaml config | docker build --target output_collector --output type=local,dest="firmwares" -f Dockerfile -
10}
11
12function flash() {
13	side=${1}
14	id=${2}
15
16	echo -n "$(echo_red) Connect ${side} side as usb storage: "
17	while [[ ! -e /dev/disk/by-id/"${id}" ]]; do
18		echo -n "$(echo_blue .)"
19		sleep 1
20	done
21	echo " ✅"
22
23	if [[ -d /run/media/"${USER}"/NICENANO ]]; then
24		echo "$(echo_green ) Using auto-mounted /run/media/${USER}/NICENANO"
25		cp -bv "firmwares/keyball44_${side}.uf2" /run/media/"${USER}"/NICENANO/CURRENT.UF2
26	else
27		sudo umount /mnt 2>/dev/null >/dev/null || true
28		sudo mount /dev/disk/by-id/"${id}" /mnt
29		sudo cp -bv "firmwares/keyball44_${side}.uf2" /mnt/CURRENT.UF2
30	fi
31}
32
33help() {
34	echo "go.sh [build/flash]"
35}
36
37[[ -z ${1-""} ]] && {
38	set +x
39	echo "need at least one arg"
40	help
41	exit 1
42}
43
44case "$1" in
45build) build ;;
46flash)
47	build
48
49	flash left usb-Adafruit_nRF_UF2_FEA589DBF0ED86AA-0:0
50	echo "$(echo_green ) Left side is completed.."
51	sleep 2
52
53	flash right usb-Adafruit_nRF_UF2_DDCBE6D91191787B-0:0
54	echo "$(echo_green )" "Right side is completed.. enjoy 🥳"
55	;;
56*)
57	echo "Wrong argument $1"
58	help
59	exit 1
60	;;
61esac