From 67fac7803e28c485bbd23c47cd5bb92de61e3763 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Fri, 23 Feb 2024 22:35:45 +1100 Subject: [PATCH 1/3] Add support for devcontainers. (#6) --- .devcontainer/devcontainer.json | 33 +++++++++++++++++++++++++++++++++ .devcontainer/setup.sh | 21 +++++++++++++++++++++ .vscode/extensions.json | 12 ++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 .devcontainer/devcontainer.json create mode 100755 .devcontainer/setup.sh create mode 100644 .vscode/extensions.json diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000..2b7b817a --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,33 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/debian +{ + "name": "QMK CLI", + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + "image": "ghcr.io/qmk/qmk_cli", + "customizations": { + "vscode": { + "extensions": [ + "amodio.toggle-excluded-files", + "EditorConfig.EditorConfig", + "xaver.clang-format", + "llvm-vs-code-extensions.vscode-clangd", + "bierner.github-markdown-preview", + "donjayamanne.git-extension-pack", + "ms-vscode-remote.remote-containers" + ] + } + }, + "postCreateCommand": "/workspaces/qmk_userspace/.devcontainer/setup.sh" + + // Features to add to the dev container. More info: https://containers.dev/features. + // "features": {}, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Configure tool-specific properties. + // "customizations": {}, + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" +} diff --git a/.devcontainer/setup.sh b/.devcontainer/setup.sh new file mode 100755 index 00000000..25c7c5ee --- /dev/null +++ b/.devcontainer/setup.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +set -eEuo pipefail + +wget https://bootstrap.pypa.io/get-pip.py +python3 get-pip.py +python3 -m pip install qmk +rm get-pip.py + +python3 -m pip install --upgrade milc + +git config --global --add safe.directory /workspaces/qmk_userspace +git submodule update --init --recursive + +[ -d /workspaces/qmk_firmware ] || git clone https://github.com/qmk/qmk_firmware.git /workspaces/qmk_firmware +git config --global --add safe.directory /workspaces/qmk_firmware + +qmk config user.qmk_home=/workspaces/qmk_firmware +qmk config user.overlay_dir=/workspaces/qmk_userspace + +qmk git-submodule diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..3984e9be --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,12 @@ +// Suggested extensions +{ + "recommendations": [ + "amodio.toggle-excluded-files", + "EditorConfig.EditorConfig", + "xaver.clang-format", + "llvm-vs-code-extensions.vscode-clangd", + "bierner.github-markdown-preview", + "donjayamanne.git-extension-pack", + "ms-vscode-remote.remote-containers" + ] +} From 6ddb67dc5621c9aa97ff8a1c7188add77ef3304f Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Thu, 2 May 2024 20:11:50 +1000 Subject: [PATCH 2/3] Replicate qmk/qmk_firmware#23310 --- .clangd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.clangd b/.clangd index 2be2d817..6133ae72 100644 --- a/.clangd +++ b/.clangd @@ -1,4 +1,4 @@ CompileFlags: Add: [-Wno-unknown-attributes, -Wno-maybe-uninitialized, -Wno-unknown-warning-option] - Remove: [-W*, -mcall-prologues] + Remove: [-W*, -mmcu=*, -mcpu=*, -mfpu=*, -mfloat-abi=*, -mno-unaligned-access, -mno-thumb-interwork, -mcall-prologues] Compiler: clang From 7672002109b5856fc1b43df292bca4836fdb99d5 Mon Sep 17 00:00:00 2001 From: Vitaliy Zaytsev Date: Thu, 2 May 2024 14:20:54 +0300 Subject: [PATCH 3/3] use containerWorkspaceFolder var and pass it to setup.sh (#12) - folder name inside dev container is same as folder name on host so if it differs from qmk_userspace then setup.sh cannot be found and it sets incorrect user.overlay_dir - docs https://containers.dev/implementors/json_reference/ --- .devcontainer/devcontainer.json | 2 +- .devcontainer/setup.sh | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 2b7b817a..7aaee1fd 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -17,7 +17,7 @@ ] } }, - "postCreateCommand": "/workspaces/qmk_userspace/.devcontainer/setup.sh" + "postCreateCommand": "${containerWorkspaceFolder}/.devcontainer/setup.sh ${containerWorkspaceFolder}" // Features to add to the dev container. More info: https://containers.dev/features. // "features": {}, diff --git a/.devcontainer/setup.sh b/.devcontainer/setup.sh index 25c7c5ee..9155c6cc 100755 --- a/.devcontainer/setup.sh +++ b/.devcontainer/setup.sh @@ -9,13 +9,15 @@ rm get-pip.py python3 -m pip install --upgrade milc -git config --global --add safe.directory /workspaces/qmk_userspace +userspacePath="$1" + +git config --global --add safe.directory "$userspacePath" git submodule update --init --recursive [ -d /workspaces/qmk_firmware ] || git clone https://github.com/qmk/qmk_firmware.git /workspaces/qmk_firmware git config --global --add safe.directory /workspaces/qmk_firmware qmk config user.qmk_home=/workspaces/qmk_firmware -qmk config user.overlay_dir=/workspaces/qmk_userspace +qmk config user.overlay_dir="$userspacePath" qmk git-submodule