From dc00049030b43157c030ad676e098b22e931dda9 Mon Sep 17 00:00:00 2001 From: Michael Brewer Date: Tue, 12 Mar 2024 00:17:27 -0700 Subject: [PATCH] feat(code-server): add code-server offline support --- code-server/main.tf | 7 +++++++ code-server/run.sh | 23 ++++++++++++++--------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/code-server/main.tf b/code-server/main.tf index dc0e6bd..a0dfbf8 100644 --- a/code-server/main.tf +++ b/code-server/main.tf @@ -83,6 +83,12 @@ variable "order" { default = null } +variable "offline" { + type = bool + description = "Just run code-server in the background, don't fetch it from GitHub" + default = false +} + resource "coder_script" "code-server" { agent_id = var.agent_id display_name = "code-server" @@ -96,6 +102,7 @@ resource "coder_script" "code-server" { INSTALL_PREFIX : var.install_prefix, // This is necessary otherwise the quotes are stripped! SETTINGS : replace(jsonencode(var.settings), "\"", "\\\""), + OFFLINE : var.offline, }) run_on_start = true } diff --git a/code-server/run.sh b/code-server/run.sh index f6229f3..865e394 100755 --- a/code-server/run.sh +++ b/code-server/run.sh @@ -4,6 +4,20 @@ EXTENSIONS=("${EXTENSIONS}") BOLD='\033[0;1m' CODE='\033[36;40;1m' RESET='\033[0m' +CODE_SERVER="${INSTALL_PREFIX}/bin/code-server" + +# Check if the settings file exists... +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 +fi + +if [ "${OFFLINE}" = true ]; then + echo "👷 Running code-server in offline mode..." + $CODE_SERVER --auth none --port ${PORT} --app-name "${APP_NAME}" > ${LOG_PATH} 2>&1 & + exit 0 +fi printf "$${BOLD}Installing code-server!\n" @@ -22,8 +36,6 @@ if [ $? -ne 0 ]; then fi printf "🥳 code-server has been installed in ${INSTALL_PREFIX}\n\n" -CODE_SERVER="${INSTALL_PREFIX}/bin/code-server" - # Install each extension... IFS=',' read -r -a EXTENSIONLIST <<< "$${EXTENSIONS}" for extension in "$${EXTENSIONLIST[@]}"; do @@ -38,13 +50,6 @@ for extension in "$${EXTENSIONLIST[@]}"; do fi done -# Check if the settings file exists... -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 -fi - echo "👷 Running code-server in the background..." echo "Check logs at ${LOG_PATH}!" $CODE_SERVER --auth none --port ${PORT} --app-name "${APP_NAME}" > ${LOG_PATH} 2>&1 &