@@ -71,6 +71,37 @@ data "coder_parameter" "region" {
71
71
# }
72
72
}
73
73
74
+ data "coder_parameter" "jetbrains_ide" {
75
+ type = " list(string)"
76
+ name = " jetbrains_ide"
77
+ display_name = " JetBrains IDE"
78
+ icon = " /icon/gateway.svg"
79
+ mutable = true
80
+ default = jsonencode ([
81
+ " GO" ,
82
+ " 232.9559.64" ,
83
+ " https://download.jetbrains.com/go/goland-2023.2.1.tar.gz"
84
+ ])
85
+ option {
86
+ icon = " /icon/goland.svg"
87
+ name = " GoLand"
88
+ value = jsonencode ([
89
+ " GO" ,
90
+ " 232.9559.64" ,
91
+ " https://download.jetbrains.com/go/goland-2023.2.1.tar.gz"
92
+ ])
93
+ }
94
+ option {
95
+ icon = " /icon/webstorm.svg"
96
+ name = " WebStorm"
97
+ value = jsonencode ([
98
+ " WS" ,
99
+ " 232.9559.54" ,
100
+ " https://download.jetbrains.com/webstorm/WebStorm-2023.2.1.tar.gz"
101
+ ])
102
+ }
103
+ }
104
+
74
105
provider "docker" {
75
106
host = lookup (local. docker_host , data. coder_parameter . region . value )
76
107
}
@@ -189,7 +220,6 @@ resource "coder_agent" "dev" {
189
220
repo_dir="$${repo_dir/#~\//$HOME\/}"
190
221
if [ ! -d "$repo_dir" ]; then
191
222
mkdir -p "$repo_dir"
192
-
193
223
git clone https://github.com/coder/coder "$repo_dir"
194
224
fi
195
225
@@ -242,6 +272,15 @@ resource "coder_app" "filebrowser" {
242
272
share = " owner"
243
273
}
244
274
275
+ resource "coder_app" "gateway" {
276
+ agent_id = coder_agent. dev . id
277
+ display_name = data. coder_parameter . jetbrains_ide . option [index (data. coder_parameter . jetbrains_ide . option . * . value , data. coder_parameter . jetbrains_ide . value )]. name
278
+ slug = " gateway"
279
+ url = " jetbrains-gateway://connect#type=coder&workspace=${ data . coder_workspace . me . name } &agent=dev&folder=${ replace (data. coder_parameter . repo_dir . value , " /^~\\ //" , " /home/coder/" )} &url=${ data . coder_workspace . me . access_url } &token=${ data . coder_workspace . me . owner_session_token } &ide_product_code=${ jsondecode (data. coder_parameter . jetbrains_ide . value )[0 ]} &ide_build_number=${ jsondecode (data. coder_parameter . jetbrains_ide . value )[1 ]} &ide_download_link=${ jsondecode (data. coder_parameter . jetbrains_ide . value )[2 ]} "
280
+ icon = data. coder_parameter . jetbrains_ide . option [index (data. coder_parameter . jetbrains_ide . option . * . value , data. coder_parameter . jetbrains_ide . value )]. icon
281
+ external = true
282
+ }
283
+
245
284
resource "docker_volume" "home_volume" {
246
285
name = " coder-${ data . coder_workspace . me . id } -home"
247
286
# Protect the volume from being deleted due to changes in attributes.
0 commit comments