57 lines
1.6 KiB
Bash
Executable file
57 lines
1.6 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
# Parse input arguments
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
# needed when user isn't in docker group
|
|
-s|--sudu)
|
|
SUDO="sudo"
|
|
;;
|
|
|
|
-v|--version)
|
|
WEST_VERSION="$2"
|
|
shift
|
|
;;
|
|
|
|
--host-zmk-dir)
|
|
HOST_ZMK_DIR="$2"
|
|
shift
|
|
;;
|
|
|
|
--docker-zmk-dir)
|
|
DOCKER_ZMK_DIR="$2"
|
|
shift
|
|
;;
|
|
|
|
*)
|
|
echo "Unknown option $1"
|
|
exit 1
|
|
;;
|
|
|
|
esac
|
|
shift
|
|
done
|
|
|
|
# Set defaults
|
|
[[ -z $WEST_VERSION ]] && WEST_VERSION="3.0"
|
|
[[ -z $HOST_ZMK_DIR ]] && HOST_ZMK_DIR="$HOME/zmk"
|
|
[[ -z $DOCKER_ZMK_DIR ]] && DOCKER_ZMK_DIR="/workspace/zmk"
|
|
|
|
DOCKER_IMG="zmkfirmware/zmk-dev-arm:$WEST_VERSION"
|
|
DOCKER_CMD="$SUDO docker run --name zmk-$WEST_VERSION --rm \
|
|
--mount type=bind,source=$HOST_ZMK_DIR,target=$DOCKER_ZMK_DIR \
|
|
--mount type=volume,source=zmk-root-user-$WEST_VERSION,target=/root \
|
|
--mount type=volume,source=zmk-zephyr-$WEST_VERSION,target=$DOCKER_ZMK_DIR/zephyr \
|
|
--mount type=volume,source=zmk-zephyr-modules-$WEST_VERSION,target=$DOCKER_ZMK_DIR/modules \
|
|
--mount type=volume,source=zmk-zephyr-tools-$WEST_VERSION,target=$DOCKER_ZMK_DIR/tools"
|
|
|
|
# Reset volumes
|
|
$SUDO docker volume rm $(sudo docker volume ls -q | grep "^zmk-.*-$WEST_VERSION$")
|
|
|
|
# Install west
|
|
$DOCKER_CMD -w "$DOCKER_ZMK_DIR" "$DOCKER_IMG" west init -l app/
|
|
$DOCKER_CMD -w "$DOCKER_ZMK_DIR" "$DOCKER_IMG" west update
|
|
|
|
# Install docosaurus
|
|
$DOCKER_CMD -w "$DOCKER_ZMK_DIR/docs" "$DOCKER_IMG" npm ci
|
|
|