feat(code-server): install extensions from `.vscode/extensions.json` (#231)

pull/242/head
Michael Brewer 1 year ago committed by GitHub
parent 76c60e9971
commit b686f2dbd5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -101,6 +101,12 @@ variable "extensions_dir" {
default = "" default = ""
} }
variable "auto_install_extensions" {
type = bool
description = "Automatically install recommended extensions when code-server starts."
default = false
}
resource "coder_script" "code-server" { resource "coder_script" "code-server" {
agent_id = var.agent_id agent_id = var.agent_id
display_name = "code-server" display_name = "code-server"
@ -117,6 +123,8 @@ resource "coder_script" "code-server" {
OFFLINE : var.offline, OFFLINE : var.offline,
USE_CACHED : var.use_cached, USE_CACHED : var.use_cached,
EXTENSIONS_DIR : var.extensions_dir, EXTENSIONS_DIR : var.extensions_dir,
FOLDER : var.folder,
AUTO_INSTALL_EXTENSIONS : var.auto_install_extensions,
}) })
run_on_start = true run_on_start = true

@ -70,4 +70,24 @@ for extension in "$${EXTENSIONLIST[@]}"; do
fi fi
done done
if [ "${AUTO_INSTALL_EXTENSIONS}" = true ]; then
if ! command -v jq > /dev/null; then
echo "jq is required to install extensions from a workspace file."
exit 0
fi
WORKSPACE_DIR="$HOME"
if [ -n "${FOLDER}" ]; then
WORKSPACE_DIR="${FOLDER}"
fi
if [ -f "$WORKSPACE_DIR/.vscode/extensions.json" ]; then
printf "🧩 Installing extensions from %s/.vscode/extensions.json...\n" "$WORKSPACE_DIR"
extensions=$(jq -r '.recommendations[]' "$WORKSPACE_DIR"/.vscode/extensions.json)
for extension in $extensions; do
$CODE_SERVER "$EXTENSION_ARG" --install-extension "$extension"
done
fi
fi
run_code_server run_code_server

Loading…
Cancel
Save