nftable-migration
1#! /usr/bin/env nix-shell
2#! nix-shell -i bash -p qmk
3
4set -eufo pipefail
5TARGET_USER=vincent
6
7checkout() {
8 if [[ ! -d ./build/qmk_firmware ]]; then
9 git clone https://github.com/qmk/qmk_firmware ./build/qmk_firmware
10 fi
11}
12
13update() {
14 git submodule update --init --recursive
15 for i in qmk_firmware keychron_firmware; do
16 (
17 [[ -e ./build/${i} ]] && {
18 cd ./build/${i}
19 qmk git-submodule
20 } || true
21 )
22 done
23}
24
25symlink() {
26 local p=qmk_firmware
27 local keyboard="zsa/moonlander"
28 rm -f build/${p}/keyboards/${keyboard}/keymaps/${TARGET_USER}
29 mkdir -p build/${p}/keyboards/${keyboard}/keymaps
30 ln -rvsf ${PWD}/config build/${p}/keyboards/${keyboard}/keymaps/${TARGET_USER}
31 # [[ -e build/${p}/users/common ]] || ln -rvsf ${PWD}/common build/${p}/users/vincent
32}
33
34action() {
35 local keyboard="zsa/moonlander"
36 local action=$1
37 local p=qmk_firmware
38 symlink ${keyboard}
39 make BUILD_DIR=${PWD}/build -j1 -C build/${p} ${keyboard}:${TARGET_USER}:${action}
40}
41
42build() {
43 action build
44}
45
46flash() {
47 action flash
48}
49
50clean() {
51 rm -rf build
52 git submodule update -f --recursive
53}
54
55help() {
56 echo "build.sh [update/clean/build/flash]"
57}
58
59[[ -z ${1-""} ]] && {
60 set +x
61 echo "need at least one arg"
62 help
63 exit 1
64}
65
66if [[ $1 == update ]]; then
67 update
68 exit
69elif [[ $1 == checkout ]]; then
70 checkout ${2:-""}
71 exit
72elif [[ ${1} == clean ]]; then
73 clean
74 exit
75fi
76
77case "$1" in
78build) build ;;
79flash) flash ;;
80*)
81 echo "Wrong argument $1"
82 help
83 exit 1
84 ;;
85esac