feat(code-server): install extensions from .vscode/extensions.json (#231)
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user