From f7b21bfcd20d9a13606a49a316e5b03909df6ee8 Mon Sep 17 00:00:00 2001 From: djarbz <30350993+djarbz@users.noreply.github.com> Date: Fri, 9 May 2025 15:38:02 -0500 Subject: [PATCH] Allow for config of machine settings --- registry/coder/modules/code-server/main.tf | 7 +++++++ registry/coder/modules/code-server/run.sh | 15 ++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/registry/coder/modules/code-server/main.tf b/registry/coder/modules/code-server/main.tf index ca4ff3afd..b4e3d2597 100644 --- a/registry/coder/modules/code-server/main.tf +++ b/registry/coder/modules/code-server/main.tf @@ -44,6 +44,12 @@ variable "settings" { default = {} } +variable "machine-settings" { + type = any + description = "A map of template level machine settings to apply to code-server. This will be overwritten at each container start." + default = {} +} + variable "folder" { type = string description = "The folder to open in code-server." @@ -149,6 +155,7 @@ resource "coder_script" "code-server" { INSTALL_PREFIX : var.install_prefix, // This is necessary otherwise the quotes are stripped! SETTINGS : replace(jsonencode(var.settings), "\"", "\\\""), + MACHINE_SETTINGS : replace(jsonencode(var.machine-settings), "\"", "\\\""), OFFLINE : var.offline, USE_CACHED : var.use_cached, USE_CACHED_EXTENSIONS : var.use_cached_extensions, diff --git a/registry/coder/modules/code-server/run.sh b/registry/coder/modules/code-server/run.sh index 99b30c0ea..73bcd6899 100644 --- a/registry/coder/modules/code-server/run.sh +++ b/registry/coder/modules/code-server/run.sh @@ -23,7 +23,20 @@ function run_code_server() { if [ ! -f ~/.local/share/code-server/User/settings.json ]; then echo "⚙️ Creating settings file..." mkdir -p ~/.local/share/code-server/User - echo "${SETTINGS}" > ~/.local/share/code-server/User/settings.json + if command -v jq &> /dev/null; then + echo "${SETTINGS}" | jq '.' > ~/.local/share/code-server/User/settings.json + else + echo "${SETTINGS}" > ~/.local/share/code-server/User/settings.json + fi +fi + +# Apply/overwrite template based settings +echo "⚙️ Creating machine settings file..." +mkdir -p ~/.local/share/code-server/Machine +if command -v jq &> /dev/null; then + echo "${MACHINE_SETTINGS}" | jq '.' > ~/.local/share/code-server/Machine/settings.json +else + echo "${MACHINE_SETTINGS}" > ~/.local/share/code-server/Machine/settings.json fi # Check if code-server is already installed for offline