Files
goexif/exif/regen_regress.go
zeekay d33d109e0a rebrand: rename module github.com/seaweedfs/goexif -> github.com/hanzoai/goexif
- create go.mod (deleted upstream at v1.0.3) with module github.com/hanzoai/goexif, go 1.21
- rewrite all internal self-imports (exif/tiff/mknote/exifstat/tests/regen) to hanzoai path
- update README import-path/install references
- pure stdlib, zero external deps; go build/vet/test all pass
2026-06-26 13:01:39 -07:00

92 lines
1.7 KiB
Go

// +build ignore
package main
import (
"flag"
"fmt"
"io"
"log"
"os"
"path/filepath"
"sort"
"strings"
"github.com/hanzoai/goexif/exif"
"github.com/hanzoai/goexif/tiff"
)
func main() {
flag.Parse()
fname := flag.Arg(0)
dst, err := os.Create(fname)
if err != nil {
log.Fatal(err)
}
defer dst.Close()
dir, err := os.Open("samples")
if err != nil {
log.Fatal(err)
}
defer dir.Close()
names, err := dir.Readdirnames(0)
if err != nil {
log.Fatal(err)
}
sort.Strings(names)
for i, name := range names {
names[i] = filepath.Join("samples", name)
}
makeExpected(names, dst)
}
func makeExpected(files []string, w io.Writer) {
fmt.Fprintf(w, "package exif\n\n")
fmt.Fprintf(w, "var regressExpected = map[string]map[FieldName]string{\n")
for _, name := range files {
if !strings.HasSuffix(name, ".jpg") {
continue
}
f, err := os.Open(name)
if err != nil {
continue
}
x, err := exif.Decode(f)
if err != nil {
f.Close()
continue
}
var items []string
x.Walk(walkFunc(func(name exif.FieldName, tag *tiff.Tag) error {
if strings.HasPrefix(string(name), exif.UnknownPrefix) {
items = append(items, fmt.Sprintf("\"%v\": `%v`,\n", name, tag.String()))
} else {
items = append(items, fmt.Sprintf("%v: `%v`,\n", name, tag.String()))
}
return nil
}))
sort.Strings(items)
fmt.Fprintf(w, "\"%v\": map[FieldName]string{\n", filepath.Base(name))
for _, item := range items {
fmt.Fprint(w, item)
}
fmt.Fprintf(w, "},\n")
f.Close()
}
fmt.Fprintf(w, "}")
}
type walkFunc func(exif.FieldName, *tiff.Tag) error
func (f walkFunc) Walk(name exif.FieldName, tag *tiff.Tag) error {
return f(name, tag)
}