diff --git a/pkg/disk.go b/pkg/disk.go index 418aa703e..67568dc27 100644 --- a/pkg/disk.go +++ b/pkg/disk.go @@ -3,7 +3,6 @@ package pkg import ( "cli-go/pkg/model" "cli-go/pkg/model/export" - "context" "encoding/json" "errors" "fmt" @@ -99,21 +98,6 @@ func readJSONFromFile(filePath string, data interface{}) error { return decoder.Decode(data) } -func exportHome(ctx context.Context) (string, error) { - homeDir, err := os.UserHomeDir() - if err != nil { - return "", err - } - path := fmt.Sprintf("%s/%s", homeDir, "photos") - if _, err = os.Stat(path); os.IsNotExist(err) { - err = os.Mkdir(path, 0755) - if err != nil { - return "", err - } - } - return path, nil -} - func validateExportDirectory(dir string) (bool, error) { // Check if the path exists fileInfo, err := os.Stat(dir) diff --git a/pkg/remote_to_disk_album.go b/pkg/remote_to_disk_album.go index 444f0e5fe..cf8c57434 100644 --- a/pkg/remote_to_disk_album.go +++ b/pkg/remote_to_disk_album.go @@ -1,6 +1,7 @@ package pkg import ( + "cli-go/pkg/model" "cli-go/pkg/model/export" "context" "encoding/json" @@ -12,12 +13,8 @@ import ( "path/filepath" ) -func (c *ClICtrl) createLocalFolderForRemoteAlbums(ctx context.Context) error { - path, pathErr := exportHome(ctx) - if pathErr != nil { - return pathErr - } - +func (c *ClICtrl) createLocalFolderForRemoteAlbums(ctx context.Context, account model.Account) error { + path := account.ExportDir albums, err := c.getRemoteAlbums(ctx) if err != nil { return err diff --git a/pkg/remote_to_disk_file.go b/pkg/remote_to_disk_file.go index cdec43c80..16ade9fd9 100644 --- a/pkg/remote_to_disk_file.go +++ b/pkg/remote_to_disk_file.go @@ -15,12 +15,9 @@ import ( "time" ) -func (c *ClICtrl) syncFiles(ctx context.Context) error { +func (c *ClICtrl) syncFiles(ctx context.Context, account model.Account) error { log.Printf("Starting sync files") - exportRoot, err := exportHome(ctx) - if err != nil { - return err - } + exportRoot := account.ExportDir _, albumIDToMetaMap, err := readFolderMetadata(exportRoot) if err != nil { return err diff --git a/pkg/sync.go b/pkg/sync.go index 47012e658..f87826bb0 100644 --- a/pkg/sync.go +++ b/pkg/sync.go @@ -21,6 +21,15 @@ func (c *ClICtrl) StartSync() error { } for _, account := range accounts { log.SetPrefix(fmt.Sprintf("[%s-%s] ", account.App, account.Email)) + if account.ExportDir == "" { + log.Printf("Skip account %s: no export directory configured", account.Email) + continue + } + _, err = validateExportDirectory(account.ExportDir) + if err != nil { + log.Printf("Skip export, error: %v while validing exportDir %s\n", err, account.ExportDir) + continue + } log.Println("start sync") err = c.SyncAccount(account) if err != nil { @@ -53,12 +62,12 @@ func (c *ClICtrl) SyncAccount(account model.Account) error { if err != nil { log.Printf("Error fetching files: %s", err) } - err = c.createLocalFolderForRemoteAlbums(ctx) + err = c.createLocalFolderForRemoteAlbums(ctx, account) if err != nil { log.Printf("Error creating local folders: %s", err) return err } - err = c.syncFiles(ctx) + err = c.syncFiles(ctx, account) if err != nil { log.Printf("Error syncing files: %s", err) return err