From 63839d48378ed7f107537bb6a2b3ee72f75ed890 Mon Sep 17 00:00:00 2001 From: Muhammad Atif Ali Date: Sun, 24 Sep 2023 17:31:10 +0300 Subject: [PATCH] wip --- jupyterlab/README.md | 61 +++++++------------------------------------- jupyterlab/main.tf | 57 ++++------------------------------------- jupyterlab/run.sh | 18 ++++++++++--- 3 files changed, 28 insertions(+), 108 deletions(-) diff --git a/jupyterlab/README.md b/jupyterlab/README.md index 5e64e6f..e80fe11 100644 --- a/jupyterlab/README.md +++ b/jupyterlab/README.md @@ -1,64 +1,21 @@ --- -display_name: jupyterlab -description: Describe what this module does -icon: ../.icons/.svg -maintainer_github: GITHUB_USERNAME -verified: false -tags: [community] +display_name: JupyterLab +description: A module that adds JupyterLab in your Coder template. +icon: ../.icons/jupyter.svg +maintainer_github: coder +verified: true +tags: [jupyter, helper] --- -# jupyterlab +# JupyterLab -<-- Describes what this module does --> +A module that adds JupyterLab in your Coder template. -<-- Add a screencast or screenshot here --> - -```hcl -module "jupyterlab" { - source = "https://registry.coder.com/modules/jupyterlab" -} -``` - -## Examples - -### Example 1 - -Install the Dracula theme from [OpenVSX](https://open-vsx.org/): + ```hcl module "jupyterlab" { source = "https://registry.coder.com/modules/jupyterlab" agent_id = coder_agent.example.id - extensions = [ - "dracula-theme.theme-dracula" - ] } ``` - -Enter the `.` into the extensions array and code-server will automatically install on start. - -### Example 2 - -Configure VS Code's [settings.json](https://code.visualstudio.com/docs/getstarted/settings#_settingsjson) file: - -```hcl -module "jupyterlab" { - source = "https://registry.coder.com/modules/jupyterlab" - agent_id = coder_agent.example.id - extensions = [ "dracula-theme.theme-dracula" ] - settings = { - "workbench.colorTheme" = "Dracula" - } -} -``` - -### Example 3 - -Run code-server in the background, don't fetch it from GitHub: - -```hcl -module "jupyterlab" { - source = "https://registry.coder.com/modules/jupyterlab" - agent_id = coder_agent.example.id - offline = true -} diff --git a/jupyterlab/main.tf b/jupyterlab/main.tf index cfd2a59..e95c0a2 100644 --- a/jupyterlab/main.tf +++ b/jupyterlab/main.tf @@ -10,21 +10,7 @@ terraform { } locals { - # A built-in icon like "/icon/code.svg" or a full URL of icon - icon_url = "https://raw.githubusercontent.com/coder/coder/main/site/static/icon/code.svg" - # a map of all possible values - options = { - "Option 1" = { - "name" = "Option 1", - "value" = "1" - "icon" = "/emojis/1.png" - } - "Option 2" = { - "name" = "Option 2", - "value" = "2" - "icon" = "/emojis/2.png" - } - } + icon_url = "/icon/jupyter.svg" } # Add required variables for your modules and remove any unneeded variables @@ -45,20 +31,13 @@ variable "port" { default = 19999 } -variable "mutable" { - type = bool - description = "Whether the parameter is mutable." - default = true -} -# Add other variables here - - resource "coder_script" "jupyterlab" { agent_id = var.agent_id display_name = "jupyterlab" icon = local.icon_url script = templatefile("${path.module}/run.sh", { LOG_PATH : var.log_path, + PORT : var.port }) run_on_start = true run_on_stopt = false @@ -67,35 +46,9 @@ resource "coder_script" "jupyterlab" { resource "coder_app" "jupyterlab" { agent_id = var.agent_id slug = "jupyterlab" - display_name = "jupyterlab" + display_name = "JupyterLab" url = "http://localhost:${var.port}" - icon = loocal.icon_url - subdomain = false - share = "owner" - - # Remove if the app does not have a healthcheck endpoint - healthcheck { - url = "http://localhost:${var.port}/healthz" - interval = 5 - threshold = 6 - } -} - -data "coder_parameter" "jupyterlab" { - type = "list(string)" - name = "jupyterlab" - display_name = "jupyterlab" icon = local.icon_url - mutable = var.mutable - default = local.options["Option 1"]["value"] - - dynamic "option" { - for_each = local.options - content { - icon = option.value.icon - name = option.value.name - value = option.value.value - } - } + subdomain = true + share = "owner" } - diff --git a/jupyterlab/run.sh b/jupyterlab/run.sh index 88af7ad..8e0ba35 100644 --- a/jupyterlab/run.sh +++ b/jupyterlab/run.sh @@ -1,11 +1,21 @@ #!/usr/bin/env sh echo "Instalalting ${MODULE_NAME}..." -# Add code here -# Use varibles from the templatefile function in main.tf -# e.g. LOG_PATH, PORT, etc. -echo "Installation comlete!" +# check if jupyterlab is installed +if ! command -v jupyterlab &> /dev/null then + # install jupyterlab + # check if python3 pip is installed + if ! command -v pip3 &> /dev/null then + echo "pip3 is not installed" + echo "Please install pip3 and try again" + exit 1 + fi +fi + + + +" echo "Starting ${MODULE_NAME}..." # Start the app in here