From fe53a6ca2c60408f45ac204dba2584f8a950b930 Mon Sep 17 00:00:00 2001 From: Eli Ribble Date: Mon, 9 Feb 2026 21:51:57 +0000 Subject: [PATCH] Create upload directories on startup --- main.go | 9 ++++++++- userfile/userfile.go | 16 +++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 644b29a7..35fbbc3d 100644 --- a/main.go +++ b/main.go @@ -21,6 +21,7 @@ import ( "github.com/Gleipnir-Technology/nidus-sync/platform/text" "github.com/Gleipnir-Technology/nidus-sync/rmo" nidussync "github.com/Gleipnir-Technology/nidus-sync/sync" + "github.com/Gleipnir-Technology/nidus-sync/userfile" "github.com/getsentry/sentry-go" sentryhttp "github.com/getsentry/sentry-go/http" "github.com/getsentry/sentry-go/zerolog" @@ -100,6 +101,12 @@ func main() { os.Exit(6) } + err = userfile.CreateDirectories() + if err != nil { + log.Error().Err(err).Msg("Failed to create userfile directories") + os.Exit(7) + } + router_logger := log.With().Logger() sentryMiddleware := sentryhttp.New(sentryhttp.Options{ Repanic: true, @@ -134,7 +141,7 @@ func main() { err = llm.CreateOpenAIClient(ctx, &openai_logger) if err != nil { log.Error().Err(err).Msg("Failed to start openAI client") - os.Exit(7) + os.Exit(8) } background.Start(ctx) server := &http.Server{ diff --git a/userfile/userfile.go b/userfile/userfile.go index b70687c7..8e15d652 100644 --- a/userfile/userfile.go +++ b/userfile/userfile.go @@ -6,11 +6,25 @@ import ( //"net/http" "os" - //"github.com/Gleipnir-Technology/nidus-sync/config" + "github.com/Gleipnir-Technology/nidus-sync/config" "github.com/google/uuid" "github.com/rs/zerolog/log" ) +func CreateDirectories() error { + for _, subdir := range collectionToSubdir { + path := config.FilesDirectory + "/" + subdir + _, err := os.Stat(path) + if err == nil { + continue + } + err = os.MkdirAll(path, 0750) + if err != nil { + return fmt.Errorf("Failed to create userfile directory '%s': %w", path, err) + } + } + return nil +} func FileContentWrite(body io.Reader, collection Collection, uid uuid.UUID) error { // Create file in configured directory filepath := fileContentPath(collection, uid)