From 8957b39279703557821bb94b7287e818243d2140 Mon Sep 17 00:00:00 2001 From: Marcelloh Date: Thu, 19 Mar 2026 09:35:50 +0100 Subject: [PATCH] generate works now for all platforms --- cmd/copyembed/main.go | 52 ++++++++++++++++++++++++ cmd/picoclaw/internal/onboard/command.go | 2 +- 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 cmd/copyembed/main.go diff --git a/cmd/copyembed/main.go b/cmd/copyembed/main.go new file mode 100644 index 000000000..591d5bac7 --- /dev/null +++ b/cmd/copyembed/main.go @@ -0,0 +1,52 @@ +package main + +import ( + "fmt" + "os" + "path/filepath" +) + +func main() { + if len(os.Args) < 3 { + fmt.Fprintln(os.Stderr, "Usage: copyembed ") + os.Exit(1) + } + src := os.Args[1] + dst := os.Args[2] + + if err := copyDir(src, dst); err != nil { + fmt.Fprintf(os.Stderr, "Error: %v\n", err) + os.Exit(1) + } + fmt.Printf("Copied %s -> %s\n", src, dst) +} + +func copyDir(src, dst string) error { + return filepath.Walk(src, func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + + rel, err := filepath.Rel(src, path) + if err != nil { + return err + } + + target := filepath.Join(dst, rel) + + if info.IsDir() { + return os.MkdirAll(target, info.Mode()) + } + + data, err := os.ReadFile(path) + if err != nil { + return err + } + + if err := os.MkdirAll(filepath.Dir(target), 0o755); err != nil { + return err + } + + return os.WriteFile(target, data, info.Mode()) + }) +} diff --git a/cmd/picoclaw/internal/onboard/command.go b/cmd/picoclaw/internal/onboard/command.go index 9f8b288c6..bd9cdad8d 100644 --- a/cmd/picoclaw/internal/onboard/command.go +++ b/cmd/picoclaw/internal/onboard/command.go @@ -6,7 +6,7 @@ import ( "github.com/spf13/cobra" ) -//go:generate cp -r ../../../../workspace . +//go:generate go run github.com/sipeed/picoclaw/cmd/copyembed ../../../../workspace workspace //go:embed workspace var embeddedFiles embed.FS