Install routines and docker build

This commit is contained in:
urob 2023-01-13 22:00:34 -05:00
parent 0ae0955640
commit 807682ab69
3 changed files with 121 additions and 9 deletions

View file

@ -1,15 +1,23 @@
#!/usr/bin/env bash
ZMK_DIR="$HOME/zmk"
CONFIG_DIR="$HOME/zmk-config"
OUTPUT_DIR="$WINHOME/Downloads"
WEST_OPTS="$@"
OUTPUT_DIR="$WINHOME/Downloads"
HOST_ZMK_DIR="$HOME/zmk"
HOST_CONFIG_DIR="$HOME/zmk-config"
RUNWITH_DOCKER=true
DOCKER_SUDO="sudo" # leave empty if user is in docker group
DOCKER_VERSION="zmkfirmware/zmk-dev-arm:3.0"
DOCKER_ZMK_DIR="/workspace/zmk"
DOCKER_CONFIG_DIR="/workspace/zmk-config"
# +-------------------------+
# | AUTOMATE CONFIG OPTIONS |
# +-------------------------+
cd "$CONFIG_DIR"
cd "$HOST_CONFIG_DIR"
# update maximum combos per key
count=$( \
@ -35,22 +43,44 @@ echo "Setting MAX_KEYS_PER_COMBO to $count"
# | BUILD THE FIRMWARE |
# +--------------------+
if [[ $RUNWITH_DOCKER = true ]]
then
echo "Build mode: docker"
DOCKER_CMD="$DOCKER_SUDO docker run --name zmk --rm -w $DOCKER_ZMK_DIR/app \
--mount type=bind,source=$HOST_ZMK_DIR,target=$DOCKER_ZMK_DIR \
--mount type=bind,source=$HOST_CONFIG_DIR,target=$DOCKER_CONFIG_DIR,readonly \
--mount type=volume,source=zmk-root-user,target=/root \
--mount type=volume,source=zmk-zephyr,target=$DOCKER_ZMK_DIR/zephyr \
--mount type=volume,source=zmk-zephyr-modules,target=$DOCKER_ZMK_DIR/modules \
--mount type=volume,source=zmk-zephyr-tools,target=$DOCKER_ZMK_DIR/tools \
$DOCKER_VERSION"
SUFFIX="_docker"
CONFIG_DIR="$DOCKER_CONFIG_DIR/config"
else
echo "Build mode: local"
DOCKER_CMD=
SUFFIX=
CONFIG_DIR="$HOST_CONFIG_DIR/config"
fi
# usage: compile_board [board] [bin|uf2]
compile_board () {
echo -e "\n$(tput setaf 4)Building $1$(tput sgr0)"
west build -d build/$1 -b $1 ${WEST_OPTS} -- -DZMK_CONFIG="$CONFIG_DIR/config" -Wno-dev
$DOCKER_CMD west build -d "build/$1$SUFFIX" -b $1 $WEST_OPTS \
-- -DZMK_CONFIG="$CONFIG_DIR" -Wno-dev
if [[ $? -eq 0 ]]
then
echo "$(tput setaf 4)Success: $1 done$(tput sgr0)"
OUTPUT="$OUTPUT_DIR/$1-zmk.$2"
[[ -f $OUTPUT ]] && [[ ! -L $OUTPUT ]] && mv "$OUTPUT" "$OUTPUT".bak
cp "$ZMK_DIR/app/build/$1/zephyr/zmk.$2" "$OUTPUT"
[[ -f $OUTPUT ]] && [[ ! -L $OUTPUT ]] && mv "$OUTPUT" "$OUTPUT.bak"
cp "$HOST_ZMK_DIR/app/build/$1/zephyr/zmk.$2" "$OUTPUT"
else
echo "$(tput setaf 1)Error: $1$ failed$(tput sgr0)"
echo "$(tput setaf 1)Error: $1 failed$(tput sgr0)"
fi
}
cd "$ZMK_DIR/app"
cd "$HOST_ZMK_DIR/app"
compile_board planck_rev6 bin
compile_board corneish_zen_v2_left uf2
compile_board corneish_zen_v2_right uf2