Files
kandev/apps/backend/internal/scriptengine/defaults.go
T
2026-02-21 22:14:56 +00:00

90 lines
2.4 KiB
Go

package scriptengine
// DefaultPrepareScript returns the default prepare script for a given executor type string.
func DefaultPrepareScript(executorType string) string {
switch executorType {
case "local":
return defaultLocalPrepareScript
case "worktree":
return defaultWorktreePrepareScript
case "local_docker", "remote_docker":
return defaultDockerPrepareScript
case "sprites":
return defaultSpritesPrepareScript
default:
return ""
}
}
const defaultLocalPrepareScript = `#!/bin/bash
# Prepare local environment
# This runs directly on your machine in the repository folder
cd {{repository.path}}
# Fetch latest changes from remote
git fetch --all --prune
`
const defaultWorktreePrepareScript = `#!/bin/bash
# Prepare worktree environment
# A git worktree will be created from the base branch
cd {{repository.path}}
# Fetch latest changes before creating worktree
git fetch --all --prune
`
const defaultDockerPrepareScript = `#!/bin/bash
# Prepare Docker container environment
# This runs inside the Docker container after it starts
set -euo pipefail
# ---- System dependencies ----
apt-get update -qq
apt-get install -y -qq git curl ca-certificates > /dev/null 2>&1
# ---- Node.js (required for agentctl) ----
if ! command -v node &> /dev/null; then
curl -fsSL https://deb.nodesource.com/setup_22.x | bash - > /dev/null 2>&1
apt-get install -y -qq nodejs > /dev/null 2>&1
fi
# ---- Clone repository ----
git clone --depth=1 --branch {{repository.branch}} {{repository.clone_url}} {{workspace.path}}
cd {{workspace.path}}
# ---- Repository setup (if configured) ----
{{repository.setup_script}}
# ---- Install and start Kandev agent controller ----
{{kandev.agentctl.install}}
{{kandev.agentctl.start}}
`
const defaultSpritesPrepareScript = `#!/bin/bash
# Prepare Sprites.dev cloud sandbox
#
# Pre-installed tools (no need to install):
# git, curl, wget, gh (GitHub CLI), node, python, go,
# build-essential, openssh-client, ca-certificates
set -euo pipefail
# ---- Clone repository ----
echo "Cloning {{repository.clone_url}} (branch: {{repository.branch}})..."
git clone --depth=1 --quiet --branch {{repository.branch}} {{repository.clone_url}} {{workspace.path}}
cd {{workspace.path}}
# ---- Repository setup (if configured) ----
{{repository.setup_script}}
# ---- Install and start Kandev agent controller ----
echo "Starting agent controller..."
{{kandev.agentctl.install}}
{{kandev.agentctl.start}}
echo "Prepare complete."
`