From 40f222c408b47eed8de9be84111e5e6fa5d460d7 Mon Sep 17 00:00:00 2001 From: Nikolay Edigaryev Date: Thu, 17 Apr 2025 19:57:04 +0200 Subject: [PATCH] Worker: fix "failed to retrieve Orchard's home directory path" (#309) When running through launchd and no HOME is set. --- internal/command/controller/controller.go | 12 ++---------- internal/command/controller/run.go | 11 +++++++++++ internal/command/worker/worker.go | 13 ------------- 3 files changed, 13 insertions(+), 23 deletions(-) diff --git a/internal/command/controller/controller.go b/internal/command/controller/controller.go index 2b5a958..ea22b14 100644 --- a/internal/command/controller/controller.go +++ b/internal/command/controller/controller.go @@ -1,10 +1,7 @@ package controller import ( - "github.com/cirruslabs/orchard/internal/orchardhome" "github.com/spf13/cobra" - "log" - "path/filepath" ) var dataDirPath string @@ -17,13 +14,8 @@ func NewCommand() *cobra.Command { command.AddCommand(newRunCommand()) - orchardHome, err := orchardhome.Path() - if err != nil { - log.Fatal(err) - } - - command.PersistentFlags().StringVar(&dataDirPath, "data-dir", filepath.Join(orchardHome, "controller"), - "path to the data controller's directory") + command.PersistentFlags().StringVar(&dataDirPath, "data-dir", "", + "path to the data controller's directory (defaults to $HOME/.orchard/controller)") return command } diff --git a/internal/command/controller/run.go b/internal/command/controller/run.go index ce8fbdf..a31f1e2 100644 --- a/internal/command/controller/run.go +++ b/internal/command/controller/run.go @@ -8,10 +8,12 @@ import ( configpkg "github.com/cirruslabs/orchard/internal/config" "github.com/cirruslabs/orchard/internal/controller" "github.com/cirruslabs/orchard/internal/netconstants" + "github.com/cirruslabs/orchard/internal/orchardhome" "github.com/gin-gonic/gin" "github.com/spf13/cobra" "go.uber.org/zap" "os" + "path/filepath" "strconv" ) @@ -93,6 +95,15 @@ func runController(cmd *cobra.Command, args []string) (err error) { } // Instantiate a data directory and ensure it's initialized + if dataDirPath == "" { + orchardHome, err := orchardhome.Path() + if err != nil { + return err + } + + dataDirPath = filepath.Join(orchardHome, "controller") + } + dataDir, err := controller.NewDataDir(dataDirPath) if err != nil { return err diff --git a/internal/command/worker/worker.go b/internal/command/worker/worker.go index d1221a3..9f31328 100644 --- a/internal/command/worker/worker.go +++ b/internal/command/worker/worker.go @@ -3,14 +3,9 @@ package worker import ( - "github.com/cirruslabs/orchard/internal/orchardhome" "github.com/spf13/cobra" - "log" - "path/filepath" ) -var dataDirPath string - func NewCommand() *cobra.Command { command := &cobra.Command{ Use: "worker", @@ -19,13 +14,5 @@ func NewCommand() *cobra.Command { command.AddCommand(newRunCommand()) - orchardHome, err := orchardhome.Path() - if err != nil { - log.Fatal(err) - } - - command.PersistentFlags().StringVar(&dataDirPath, "data-dir", filepath.Join(orchardHome, "worker"), - "path to the worker's data directory") - return command }