summaryrefslogtreecommitdiff
path: root/internal/cli/serve.go
diff options
context:
space:
mode:
authorClaudomator Agent <agent@claudomator>2026-03-09 04:59:39 +0000
committerClaudomator Agent <agent@claudomator>2026-03-09 04:59:39 +0000
commit67b8544b222392d8a01847e3d34559c23fd0cd12 (patch)
treeb7d27c83cac301dc9b902f3dda34d6a2a4da37d6 /internal/cli/serve.go
parentfc1459be18d4718f2c5f15325e1a1d07fb0b3a9e (diff)
api: make workspace root configurable instead of hardcoded /workspace
- Add workspaceRoot field (default "/workspace") to Server struct - Add SetWorkspaceRoot method on Server - Update handleListWorkspaces to use s.workspaceRoot - Add WorkspaceRoot field to Config with default "/workspace" - Wire cfg.WorkspaceRoot into server in serve.go - Expose --workspace-root flag on the serve command - Add TestListWorkspaces_UsesConfiguredRoot integration test Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'internal/cli/serve.go')
-rw-r--r--internal/cli/serve.go8
1 files changed, 8 insertions, 0 deletions
diff --git a/internal/cli/serve.go b/internal/cli/serve.go
index 4253d56..e5bd873 100644
--- a/internal/cli/serve.go
+++ b/internal/cli/serve.go
@@ -20,16 +20,21 @@ import (
func newServeCmd() *cobra.Command {
var addr string
+ var workspaceRoot string
cmd := &cobra.Command{
Use: "serve",
Short: "Start the Claudomator API server",
RunE: func(cmd *cobra.Command, args []string) error {
+ if cmd.Flags().Changed("workspace-root") {
+ cfg.WorkspaceRoot = workspaceRoot
+ }
return serve(addr)
},
}
cmd.Flags().StringVar(&addr, "addr", ":8484", "listen address")
+ cmd.Flags().StringVar(&workspaceRoot, "workspace-root", "/workspace", "root directory for listing workspaces")
return cmd
}
@@ -77,6 +82,9 @@ func serve(addr string) error {
if cfg.WebhookURL != "" {
srv.SetNotifier(notify.NewWebhookNotifier(cfg.WebhookURL, logger))
}
+ if cfg.WorkspaceRoot != "" {
+ srv.SetWorkspaceRoot(cfg.WorkspaceRoot)
+ }
// Register scripts.
wd, _ := os.Getwd()