Skip to content

Commit f6dcf9c

Browse files
authored
Add support for []string metadata writing (#48)
1 parent 7e9cf54 commit f6dcf9c

File tree

4 files changed

+217
-278
lines changed

4 files changed

+217
-278
lines changed

exiftool.go

+13-11
Original file line numberDiff line numberDiff line change
@@ -202,14 +202,13 @@ func (e *Exiftool) WriteMetadata(fileMetadata []FileMetadata) {
202202
defer e.lock.Unlock()
203203

204204
for i, md := range fileMetadata {
205+
fileMetadata[i].Err = nil
205206
if _, err := os.Stat(md.File); err != nil {
206207
if os.IsNotExist(err) {
207208
fileMetadata[i].Err = ErrNotExist
208209
continue
209210
}
210-
211211
fileMetadata[i].Err = err
212-
213212
continue
214213
}
215214

@@ -228,22 +227,25 @@ func (e *Exiftool) WriteMetadata(fileMetadata []FileMetadata) {
228227
}
229228

230229
for k, v := range md.Fields {
231-
newValue := ""
232230
switch v.(type) {
233231
case nil:
232+
if _, err := fmt.Fprintln(e.stdin, "-"+k+"="); err != nil {
233+
fileMetadata[i].Err = err
234+
continue
235+
}
234236
default:
235-
var err error
236-
newValue, err = md.GetString(k)
237+
strTab, err := md.GetStrings(k)
237238
if err != nil {
238239
fileMetadata[i].Err = err
239240
continue
240241
}
241-
}
242-
243-
// TODO: support writing an empty string via '^='
244-
if _, err := fmt.Fprintln(e.stdin, "-"+k+"="+newValue); err != nil {
245-
fileMetadata[i].Err = err
246-
continue
242+
for _, str := range strTab {
243+
// TODO: support writing an empty string via '^='
244+
if _, err := fmt.Fprintln(e.stdin, "-"+k+"="+str); err != nil {
245+
fileMetadata[i].Err = err
246+
continue
247+
}
248+
}
247249
}
248250
}
249251

0 commit comments

Comments
 (0)