sync: Split SyncFiles function into import and files sync
This commit is contained in:
parent
e6f6686a39
commit
c5d0616896
4 changed files with 118 additions and 82 deletions
|
@ -273,6 +273,36 @@ func BuildTheme(i Importer, tdir string) (th *fic.Theme, exceptions *CheckExcept
|
|||
return
|
||||
}
|
||||
|
||||
// SyncThemeFiles import all theme's related files
|
||||
func SyncThemeFiles(i Importer, btheme *fic.Theme) (errs error) {
|
||||
if len(btheme.Image) > 0 {
|
||||
if _, err := i.importFile(btheme.Image,
|
||||
func(filePath string, origin string) (interface{}, error) {
|
||||
if err := resizePicture(origin, filePath, image.Rect(0, 0, 500, 300)); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
btheme.Image = strings.TrimPrefix(filePath, fic.FilesDir)
|
||||
btheme.BackgroundColor, _ = getBackgroundColor(filePath)
|
||||
return nil, nil
|
||||
}); err != nil {
|
||||
errs = multierr.Append(errs, NewThemeError(btheme, fmt.Errorf("unable to import heading image: %w", err)))
|
||||
}
|
||||
}
|
||||
|
||||
if len(btheme.PartnerImage) > 0 {
|
||||
if _, err := i.importFile(btheme.PartnerImage,
|
||||
func(filePath string, origin string) (interface{}, error) {
|
||||
btheme.PartnerImage = strings.TrimPrefix(filePath, fic.FilesDir)
|
||||
return nil, nil
|
||||
}); err != nil {
|
||||
errs = multierr.Append(errs, NewThemeError(btheme, fmt.Errorf("unable to import partner image: %w", err)))
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// SyncThemes imports new or updates existing themes.
|
||||
func SyncThemes(i Importer) (exceptions map[string]*CheckExceptions, errs error) {
|
||||
if themes, err := GetThemes(i); err != nil {
|
||||
|
@ -294,29 +324,9 @@ func SyncThemes(i Importer) (exceptions map[string]*CheckExceptions, errs error)
|
|||
|
||||
exceptions[tdir] = excepts
|
||||
|
||||
if len(btheme.Image) > 0 {
|
||||
if _, err := i.importFile(btheme.Image,
|
||||
func(filePath string, origin string) (interface{}, error) {
|
||||
if err := resizePicture(filePath, image.Rect(0, 0, 500, 300)); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
btheme.Image = strings.TrimPrefix(filePath, fic.FilesDir)
|
||||
btheme.BackgroundColor, _ = getBackgroundColor(filePath)
|
||||
return nil, nil
|
||||
}); err != nil {
|
||||
errs = multierr.Append(errs, NewThemeError(btheme, fmt.Errorf("unable to import heading image: %w", err)))
|
||||
}
|
||||
}
|
||||
|
||||
if len(btheme.PartnerImage) > 0 {
|
||||
if _, err := i.importFile(btheme.PartnerImage,
|
||||
func(filePath string, origin string) (interface{}, error) {
|
||||
btheme.PartnerImage = strings.TrimPrefix(filePath, fic.FilesDir)
|
||||
return nil, nil
|
||||
}); err != nil {
|
||||
errs = multierr.Append(errs, NewThemeError(btheme, fmt.Errorf("unable to import partner image: %w", err)))
|
||||
}
|
||||
err = SyncThemeFiles(i, btheme)
|
||||
if err != nil {
|
||||
errs = multierr.Append(errs, NewThemeError(btheme, fmt.Errorf("unable to import heading image: %w", err)))
|
||||
}
|
||||
|
||||
var theme *fic.Theme
|
||||
|
|
Reference in a new issue