metadata.go 592 B

12345678910111213141516171819202122232425262728293031
  1. package main
  2. import (
  3. "crypto/sha1"
  4. "encoding/hex"
  5. "fmt"
  6. "io"
  7. "os"
  8. "path/filepath"
  9. )
  10. func CalcMetadata(file string, writer io.Writer) error {
  11. fileReader, err := os.Open(file)
  12. if err != nil {
  13. return err
  14. }
  15. defer fileReader.Close()
  16. hasher := sha1.New()
  17. nBytes, err := io.Copy(hasher, fileReader)
  18. if err != nil {
  19. return err
  20. }
  21. sha1sum := hasher.Sum(nil)
  22. filename := filepath.Base(file)
  23. fmt.Fprintf(writer, "File: %s\n", filename)
  24. fmt.Fprintf(writer, "Size: %d\n", nBytes)
  25. fmt.Fprintf(writer, "SHA1: %s\n", hex.EncodeToString(sha1sum))
  26. fmt.Fprintln(writer)
  27. return nil
  28. }