43 lines
815 B
Go
43 lines
815 B
Go
package codeserver
|
|
|
|
import (
|
|
"fmt"
|
|
"path/filepath"
|
|
|
|
"zlh-agent/internal/provision"
|
|
"zlh-agent/internal/provision/addons"
|
|
"zlh-agent/internal/state"
|
|
)
|
|
|
|
/*
|
|
Install installs the code-server addon.
|
|
|
|
IMPORTANT:
|
|
- Addon-only (not devcontainer-specific)
|
|
- No assumptions about users or workspaces
|
|
- Idempotent via addon marker
|
|
*/
|
|
func Install(cfg state.Config) error {
|
|
|
|
if addons.IsAddonProvisioned("codeserver") {
|
|
return nil
|
|
}
|
|
|
|
scriptPath := filepath.Join(
|
|
provision.ScriptsRoot,
|
|
"addons",
|
|
"codeserver",
|
|
"install.sh",
|
|
)
|
|
|
|
if err := provision.RunScript(scriptPath); err != nil {
|
|
return fmt.Errorf("codeserver install failed: %w", err)
|
|
}
|
|
|
|
if err := addons.WriteAddonMarker("codeserver"); err != nil {
|
|
return fmt.Errorf("failed to write codeserver marker: %w", err)
|
|
}
|
|
|
|
return nil
|
|
}
|