diff --git a/exiftool.go b/exiftool.go index fb9dc27..7aa944f 100644 --- a/exiftool.go +++ b/exiftool.go @@ -48,6 +48,7 @@ type Exiftool struct { cmd *exec.Cmd backupOriginal bool clearFieldsBeforeWriting bool + ignoreMinorErrors bool } // NewExiftool instanciates a new Exiftool with configuration functions. If anything went @@ -233,6 +234,13 @@ func (e *Exiftool) WriteMetadata(fileMetadata []FileMetadata) { } } + if e.ignoreMinorErrors { + if _, err := fmt.Fprintln(e.stdin, "-m"); err != nil { + fileMetadata[i].Err = err + continue + } + } + if e.clearFieldsBeforeWriting { if _, err := fmt.Fprintln(e.stdin, "-All="); err != nil { fileMetadata[i].Err = err @@ -418,6 +426,17 @@ func BackupOriginal() func(*Exiftool) error { } } +// IgnoreMinorErrors sets a `-m` arg to ignore minor exiftool errors when writing the file metadata +// Sample : +// +// e, err := NewExiftool(IgnoreMinorErrors()) +func IgnoreMinorErrors() func(*Exiftool) error { + return func(e *Exiftool) error { + e.ignoreMinorErrors = true + return nil + } +} + // ClearFieldsBeforeWriting will clear existing fields (e.g. tags) in the file before writing any // new tags // Sample :