diff --git a/internal/photoprism/convert.go b/internal/photoprism/convert.go index 057541db4..d5b7c90da 100644 --- a/internal/photoprism/convert.go +++ b/internal/photoprism/convert.go @@ -91,7 +91,7 @@ func (c *Convert) Start(path string) error { func (c *Convert) ConvertCommand(image *MediaFile, jpegName string, xmpName string) (result *exec.Cmd, err error) { if image.IsRaw() { if c.conf.SipsBin() != "" { - result = exec.Command(c.conf.SipsBin(), "-s format jpeg", image.fileName, "--out "+jpegName) + result = exec.Command(c.conf.SipsBin(), "-s", "format", "jpeg", "--out", jpegName, image.fileName) } else if c.conf.DarktableBin() != "" { if xmpName != "" { result = exec.Command(c.conf.DarktableBin(), image.fileName, xmpName, jpegName) @@ -184,7 +184,11 @@ func (c *Convert) ToJpeg(image *MediaFile) (*MediaFile, error) { // Run convert command. if err := cmd.Run(); err != nil { - return nil, errors.New(stderr.String()) + if stderr.String() != "" { + return nil, errors.New(stderr.String()) + } else { + return nil, err + } } return NewMediaFile(jpegName) diff --git a/internal/photoprism/convert_worker.go b/internal/photoprism/convert_worker.go index 16cbf104f..981106004 100644 --- a/internal/photoprism/convert_worker.go +++ b/internal/photoprism/convert_worker.go @@ -1,5 +1,7 @@ package photoprism +import "strings" + type ConvertJob struct { image *MediaFile convert *Convert @@ -8,7 +10,8 @@ type ConvertJob struct { func convertWorker(jobs <-chan ConvertJob) { for job := range jobs { if _, err := job.convert.ToJpeg(job.image); err != nil { - log.Warnf("convert: %s (%s)", err.Error(), job.image.FileName()) + fileName := job.image.RelativeName(job.convert.conf.OriginalsPath()) + log.Errorf("convert: could not create jpeg for %s (%s)", fileName, strings.TrimSpace(err.Error())) } } }