diff --git a/src/gomd5/main.go b/src/gomd5/main.go new file mode 100644 index 0000000000000000000000000000000000000000..05d948b134d9f47af2762b4cc870599e4fcc7df8 --- /dev/null +++ b/src/gomd5/main.go @@ -0,0 +1,34 @@ +package main + +import ( + "crypto/md5" + "fmt" + "io" + "os" +) + +func main() { + if len(os.Args) < 2 { + fmt.Println("Usage: gomd5 [file ...]") + } + files := os.Args[1:] + for _, file := range files { + if err := processFile(file); err != nil { + fmt.Fprintf(os.Stderr, "gomd5: %v", err) + } + } +} + +func processFile(filename string) error { + f, err := os.Open(filename) + if err != nil { + return err + } + defer f.Close() + h := md5.New() + if _, err := io.Copy(h, f); err != nil { + return err + } + fmt.Printf("%x\n", h.Sum(nil)) + return nil +}