From 2312415af082915fba29d132b1620fdd089e7547 Mon Sep 17 00:00:00 2001 From: Muhammad Atif Ali Date: Tue, 26 Sep 2023 04:46:26 +0300 Subject: [PATCH] use environment variables to set Timezone --- kasmvnc/README.md | 13 +++++++++++++ kasmvnc/main.tf | 16 +++++++++++++++- kasmvnc/run.sh | 21 ++++++++++++++------- 3 files changed, 42 insertions(+), 8 deletions(-) diff --git a/kasmvnc/README.md b/kasmvnc/README.md index 49ca7d4..c0e3f5c 100644 --- a/kasmvnc/README.md +++ b/kasmvnc/README.md @@ -35,5 +35,18 @@ Automatically install [KasmVNC](https://kasmweb.com/kasmvnc.png) in a workspace, desktop_environment = "mate" port = 6080 } + ``` + +3. Use custom timezone and locale: + ```hcl + module "kasmvnc" { + source = "https://registry.coder.com/modules/kasmvnc" + agent_id = coder_agent.example.id + custom_version = "1.0.0" + desktop_environment = "mate" + port = 6080 + locale = "en_US.UTF-8" + timezone = "America/Los_Angeles" + } ``` diff --git a/kasmvnc/main.tf b/kasmvnc/main.tf index bd1cc0a..44b5f45 100644 --- a/kasmvnc/main.tf +++ b/kasmvnc/main.tf @@ -32,6 +32,18 @@ variable "custom_version" { default = "1.2.0" } +variable "locale" { + type = string + description = "Locale to use for KasmVNC." + default = "en_US.UTF-8" +} + +variable "timezone" { + type = string + description = "Timezone to use for KasmVNC." + default = "Etc/UTC" +} + resource "coder_script" "kasm_vnc" { agent_id = var.agent_id display_name = "KasmVNC" @@ -39,7 +51,9 @@ resource "coder_script" "kasm_vnc" { script = templatefile("${path.module}/run.sh", { PORT : var.port, DESKTOP_ENVIRONMENT : var.desktop_environment, - VERSION : var.custom_version + VERSION : var.custom_version, + LOCALE : var.locale, + TIMEZONE : var.timezone }) run_on_start = true } diff --git a/kasmvnc/run.sh b/kasmvnc/run.sh index 6661b16..8bb2e8f 100644 --- a/kasmvnc/run.sh +++ b/kasmvnc/run.sh @@ -1,16 +1,23 @@ #!/usr/bin/env bash -# Set non-interactive and configure timezone -export DEBIAN_FRONTEND=noninteractive +# Update package list first +sudo apt-get update + +# Pre-configure selections for tzdata +if [[ ! -f /etc/timezone ]]; then + echo "tzdata tzdata/Areas select Etc" | sudo debconf-set-selections + echo "tzdata tzdata/Zones/Etc select ${TIMEZONE}" | sudo debconf-set-selections + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata +fi -echo "tzdata tzdata/Areas select Etc" | sudo debconf-set-selections -echo "tzdata tzdata/Zones/Etc select UTC" | sudo debconf-set-selections -sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata +# Pre-configure locales +echo "locales locales/default_environment_locale select ${LOCALE}" | sudo debconf-set-selections +echo "locales locales/locales_to_be_generated multiselect ${LOCALE} UTF-8" | sudo debconf-set-selections +sudo DEBIAN_FRONTEND=noninteractive apt-get install -y locales # Check if desktop environment is installed if ! dpkg -s ${DESKTOP_ENVIRONMENT} &>/dev/null; then - sudo apt-get update - DEBIAN_FRONTEND=noninteractive sudo apt-get install -y ${DESKTOP_ENVIRONMENT} + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ${DESKTOP_ENVIRONMENT} else echo "${DESKTOP_ENVIRONMENT} is already installed." fi