add configurable repo clone
This commit is contained in:
1 parent
391e90071e
commit
31a8306881
1 file changed
+14
-3
+14
-3
@@ -21,6 +21,17 @@ data "coder_provisioner" "me" {}
|
|||||||
data "coder_workspace" "me" {}
|
data "coder_workspace" "me" {}
|
||||||
data "coder_workspace_owner" "me" {}
|
data "coder_workspace_owner" "me" {}
|
||||||
|
|
||||||
|
data "coder_parameter" "repo_url" {
|
||||||
|
name = "Repository URL"
|
||||||
|
description = "Git repository to clone when workspace is created (public repo only)"
|
||||||
|
type = "string"
|
||||||
|
default = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
locals {
|
||||||
|
effective_repo_url = var.repo_url != "" ? var.repo_url : data.coder_parameter.repo_url.value
|
||||||
|
}
|
||||||
|
|
||||||
resource "coder_agent" "main" {
|
resource "coder_agent" "main" {
|
||||||
arch = data.coder_provisioner.me.arch
|
arch = data.coder_provisioner.me.arch
|
||||||
os = "linux"
|
os = "linux"
|
||||||
@@ -34,12 +45,12 @@ resource "coder_agent" "main" {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Clone repo if URL is set
|
# Clone repo if URL is set
|
||||||
if [ -n "${var.repo_url}" ]; then
|
if [ -n "${local.effective_repo_url}" ]; then
|
||||||
if [ -d ~/repo ] && [ "$(ls -A ~/repo)" ]; then
|
if [ -d ~/repo ] && [ "$(ls -A ~/repo)" ]; then
|
||||||
echo "⚠️ Skipping clone: ~/repo already exists and is not empty."
|
echo "⚠️ Skipping clone: ~/repo already exists and is not empty."
|
||||||
else
|
else
|
||||||
echo "==> Cloning repository from: ${var.repo_url}"
|
echo "==> Cloning repository from: ${local.effective_repo_url}"
|
||||||
git clone --verbose "${var.repo_url}" ~/repo \
|
git clone --verbose "${local.effective_repo_url}" ~/repo \
|
||||||
&& echo "✅ Clone successful." \
|
&& echo "✅ Clone successful." \
|
||||||
|| echo "❌ Failed to clone repo. Please check the URL or access permissions."
|
|| echo "❌ Failed to clone repo. Please check the URL or access permissions."
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in new issue
Block a user