From 937eb25211268f0230dcf216cd4afbc56af66732 Mon Sep 17 00:00:00 2001 From: default Date: Fri, 16 May 2025 13:26:51 +0000 Subject: [PATCH] implement Machine Settings for Code-Server and bump readme version --- registry/coder/modules/code-server/README.md | 14 +++++++------- registry/coder/modules/code-server/main.tf | 7 +++++++ registry/coder/modules/code-server/run.sh | 15 ++++++++++++++- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/registry/coder/modules/code-server/README.md b/registry/coder/modules/code-server/README.md index d7d222d8..e3c73ef5 100644 --- a/registry/coder/modules/code-server/README.md +++ b/registry/coder/modules/code-server/README.md @@ -15,7 +15,7 @@ Automatically install [code-server](https://github.com/coder/code-server) in a w module "code-server" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder/code-server/coder" - version = "1.1.0" + version = "1.2.0" agent_id = coder_agent.example.id } ``` @@ -30,7 +30,7 @@ module "code-server" { module "code-server" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder/code-server/coder" - version = "1.1.0" + version = "1.2.0" agent_id = coder_agent.example.id install_version = "4.8.3" } @@ -44,7 +44,7 @@ Install the Dracula theme from [OpenVSX](https://open-vsx.org/): module "code-server" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder/code-server/coder" - version = "1.1.0" + version = "1.2.0" agent_id = coder_agent.example.id extensions = [ "dracula-theme.theme-dracula" @@ -62,7 +62,7 @@ Configure VS Code's [settings.json](https://code.visualstudio.com/docs/getstarte module "code-server" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder/code-server/coder" - version = "1.1.0" + version = "1.2.0" agent_id = coder_agent.example.id extensions = ["dracula-theme.theme-dracula"] settings = { @@ -79,7 +79,7 @@ Just run code-server in the background, don't fetch it from GitHub: module "code-server" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder/code-server/coder" - version = "1.1.0" + version = "1.2.0" agent_id = coder_agent.example.id extensions = ["dracula-theme.theme-dracula", "ms-azuretools.vscode-docker"] } @@ -95,7 +95,7 @@ Run an existing copy of code-server if found, otherwise download from GitHub: module "code-server" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder/code-server/coder" - version = "1.1.0" + version = "1.2.0" agent_id = coder_agent.example.id use_cached = true extensions = ["dracula-theme.theme-dracula", "ms-azuretools.vscode-docker"] @@ -108,7 +108,7 @@ Just run code-server in the background, don't fetch it from GitHub: module "code-server" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder/code-server/coder" - version = "1.1.0" + version = "1.2.0" agent_id = coder_agent.example.id offline = true } diff --git a/registry/coder/modules/code-server/main.tf b/registry/coder/modules/code-server/main.tf index ca4ff3af..b4e3d259 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 99b30c0e..73bcd689 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