diff --git a/firmware/setup-zmk.sh b/firmware/setup-zmk.sh new file mode 100755 index 0000000..dd6c3be --- /dev/null +++ b/firmware/setup-zmk.sh @@ -0,0 +1,45 @@ +#! /usr/bin/env bash + +# clean up any existing containers or volumes +# ignore errors if they do not exist +docker container stop zmk-devcontainer || true +docker container rm zmk-devcontainer || true +docker volume rm zmk-config || true +if [ -d ./zmk ]; then + echo zmk directory already exists, removing it... + sudo rm -rf zmk +fi +git clone https://github.com/zmkfirmware/zmk.git + +# add naming the docker container and run it +cp zmk/.devcontainer/devcontainer.json zmk/.devcontainer/devcontainer.json.bak +sed -i 's#"runArgs": \["--security-opt", "label=disable"\],#"runArgs": \["--security-opt", "label=disable", "--name", "zmk-devcontainer"\],#g' zmk/.devcontainer/devcontainer.json +docker volume create --driver local -o o=bind -o type=none -o device="$(pwd)/zmk-config" zmk-config + +devcontainer up --workspace-folder ./zmk +devcontainer exec --workspace-folder ./zmk west init -l ./app/ +devcontainer exec --workspace-folder ./zmk west update + +# create a build scripts for the zmk app +echo " +#! /bin/bash +echo doing a clean build... +( + rm -rf build/ + cd app/ + west build -p -d build/left -b seeeduino_xiao_ble -- -DSHIELD=phiboard_left -DZMK_CONFIG="/workspaces/zmk-config" + west build -p -d build/right -b seeeduino_xiao_ble -- -DSHIELD=phiboard_right -DZMK_CONFIG="/workspaces/zmk-config" +) +" > zmk/phiboard-build.sh +chmod +x zmk/phiboard-build.sh + +echo " +#! /bin/bash +echo doing a successive build... +( + cd app/ + west build -d build/left + west build -d build/right +) +" > zmk/phiboard-build-cached.sh +chmod +x zmk/phiboard-build-cached.sh