Initial commit
commit
7d89f2a56f
@ -0,0 +1,41 @@
|
||||
terraform {
|
||||
required_version = ">= 1.0"
|
||||
|
||||
required_providers {
|
||||
aws = {
|
||||
source = "coder/coder"
|
||||
version = ">= 0.11"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
variable "agent_id" {
|
||||
type = string
|
||||
description = "The ID of a Coder agent."
|
||||
}
|
||||
|
||||
variable "extensions" {
|
||||
type = list(string)
|
||||
description = "A list of extensions to install."
|
||||
}
|
||||
|
||||
variable "port" {
|
||||
type = number
|
||||
description = "The port to run code-server on."
|
||||
default = 13337
|
||||
}
|
||||
|
||||
variable "settings" {
|
||||
type = map(string)
|
||||
description = "A map of settings to apply to code-server."
|
||||
}
|
||||
|
||||
data "http" "code-server-install" {
|
||||
url = "https://raw.githubusercontent.com/coder/code-server/main/install.sh"
|
||||
}
|
||||
|
||||
resource "coder_script" "code-server" {
|
||||
agent_id = var.agent_id
|
||||
script = data.http.code-server-install.body
|
||||
run_on_start = true
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
terraform {
|
||||
required_version = ">= 1.0"
|
||||
|
||||
required_providers {
|
||||
coder = {
|
||||
source = "terraform.local/coder/coder"
|
||||
version = ">= 0.12"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
variable "agent_id" {
|
||||
type = string
|
||||
description = "The ID of a Coder agent."
|
||||
}
|
||||
|
||||
variable "path" {
|
||||
type = string
|
||||
description = "The path to a script that will be ran on start enabling a user to personalize their workspace."
|
||||
default = "~/personalize"
|
||||
}
|
||||
|
||||
resource "coder_script" "personalize" {
|
||||
agent_id = var.agent_id
|
||||
source = templatefile("run.sh", {
|
||||
path: var.path,
|
||||
})
|
||||
display_name = "Personalize"
|
||||
icon = "/emojis/1f58c.png"
|
||||
run_on_start = true
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
PERSONALIZE_PATH=${path}
|
||||
|
||||
# If the personalize script doesn't exist, educate
|
||||
# the user how they can customize their environment!
|
||||
if [ ! -f ${PERSONALIZE_PATH}/personalize.sh ]; then
|
||||
echo "✨ You don't have a personalize script!"
|
||||
echo "Run \`touch ${PERSONALIZE_PATH}\` to create one."
|
||||
echo "Developers typically install their favorite packages here that may not be included in the base image."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Check if the personalize script is executable, if not,
|
||||
# try to make it executable and educate the user if it fails.
|
||||
if [ ! -x ${PERSONALIZE_PATH}/personalize.sh ]; then
|
||||
echo "🔐 Your personalize script isn't executable!"
|
||||
echo "Run \`chmod +x ${PERSONALIZE_PATH}\` to make it executable."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Run the personalize script!
|
||||
exec $PERSONALIZE_PATH
|
@ -0,0 +1,30 @@
|
||||
terraform {
|
||||
required_version = ">= 1.0"
|
||||
|
||||
required_providers {
|
||||
aws = {
|
||||
source = "coder/coder"
|
||||
version = ">= 0.11"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
variable "agent_id" {
|
||||
type = string
|
||||
description = "The ID of a Coder agent."
|
||||
}
|
||||
|
||||
data "coder_workspace" "me" {}
|
||||
|
||||
resource "coder_app" "vscode" {
|
||||
agent_id = var.agent_id
|
||||
external = true
|
||||
url = join("", [
|
||||
"vscode://coder.coder-remote/open?owner=",
|
||||
data.coder_workspace.me.owner,
|
||||
"&workspace=",
|
||||
data.coder_workspace.me.name,
|
||||
"&token=",
|
||||
data.coder_workspace.me.owner_session_token,
|
||||
])
|
||||
}
|
Loading…
Reference in New Issue