diff --git a/cmd/camdebug/camdebug.go b/cmd/camdebug/camdebug.go index 3b2f94a53..739950ae2 100644 --- a/cmd/camdebug/camdebug.go +++ b/cmd/camdebug/camdebug.go @@ -22,7 +22,8 @@ import ( var ( flagSplits = flag.Bool("splits", false, "show splits of provided filename") - flagMIME = flag.Bool("mime", false, "show MIME type of provided file") + flagMIME = flag.Bool("mime", false, "show MIME type of provided file") + flagEXIF = flag.Bool("exif", false, "show EXIF dump of provided file") ) func main() { @@ -35,5 +36,9 @@ func main() { showSplits() return } + if *flagEXIF { + showEXIF() + return + } flag.Usage() } diff --git a/cmd/camdebug/exif.go b/cmd/camdebug/exif.go new file mode 100644 index 000000000..07c5fd847 --- /dev/null +++ b/cmd/camdebug/exif.go @@ -0,0 +1,42 @@ +/* +Copyright 2013 Google Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package main + +import ( + "flag" + "fmt" + "log" + "os" + + "camlistore.org/third_party/github.com/camlistore/goexif/exif" +) + +func showEXIF() { + file := flag.Arg(0) + f, err := os.Open(file) + if err != nil { + panic(err.Error()) + } + defer f.Close() + ex, err := exif.Decode(f) + if err != nil { + log.Fatalf("exif.Decode: %v", err) + } + fmt.Printf("exif.Decode = %#v\n", ex) + ct, err := ex.DateTime() + fmt.Printf("exif.DateTime = %v, %v\n", ct, err) +}