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