From e1670934a1a94635e893df44ee0613b39e6720a1 Mon Sep 17 00:00:00 2001 From: derfenix Date: Tue, 7 Jan 2025 03:44:24 +0300 Subject: [PATCH] Refactoring --- application/application.go | 12 ++++++------ internal/organizer/modes/hardlink.go | 17 +++++++++-------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/application/application.go b/application/application.go index 726f745..32db65f 100644 --- a/application/application.go +++ b/application/application.go @@ -50,17 +50,17 @@ func (a *Application) Start(ctx context.Context, wg *sync.WaitGroup) error { org = org.WithOverwrite() } - if !a.config.SkipFullSync { - if err := org.FullSync(ctx); err != nil { - return fmt.Errorf("full sync: %w", err) - } - } - if a.config.Watch { if err := org.Watch(ctx, wg); err != nil { return fmt.Errorf("initialize watch: %w", err) } } + if !a.config.SkipFullSync { + if err := org.FullSync(ctx); err != nil { + return fmt.Errorf("full sync: %w", err) + } + } + return nil } diff --git a/internal/organizer/modes/hardlink.go b/internal/organizer/modes/hardlink.go index c6a77d1..aa413c9 100644 --- a/internal/organizer/modes/hardlink.go +++ b/internal/organizer/modes/hardlink.go @@ -13,9 +13,7 @@ type HardLink struct { func (h HardLink) PlaceIt(sourcePath, targetPath string, mode os.FileMode) error { if hardLinkNotSupported.Load() { - if copyErr := (Copy{}).PlaceIt(sourcePath, targetPath, mode); copyErr != nil { - return copyErr - } + return h.fallBack(sourcePath, targetPath, mode) } if err := os.Link(sourcePath, targetPath); err != nil { @@ -26,12 +24,15 @@ func (h HardLink) PlaceIt(sourcePath, targetPath string, mode os.FileMode) error log.Println("Create hardlink failed:", err.Error()) hardLinkNotSupported.Store(true) - if copyErr := (Copy{}).PlaceIt(sourcePath, targetPath, mode); copyErr != nil { - return copyErr - } - - return nil + return h.fallBack(sourcePath, targetPath, mode) } return nil } + +func (h HardLink) fallBack(sourcePath string, targetPath string, mode os.FileMode) error { + if copyErr := (Copy{}).PlaceIt(sourcePath, targetPath, mode); copyErr != nil { + return copyErr + } + return nil +}