main.go 618 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package main
  2. import (
  3. "flag"
  4. "fmt"
  5. "io"
  6. "os"
  7. "github.com/golang/snappy"
  8. )
  9. var (
  10. enc = flag.Bool("e", false, "encode")
  11. dec = flag.Bool("d", false, "decode")
  12. )
  13. func run() int {
  14. flag.Parse()
  15. if *enc == *dec {
  16. fmt.Fprintf(os.Stderr, "exactly one of -d or -e must be given")
  17. return 1
  18. }
  19. // Encode or decode stdin, and write to stdout.
  20. var err error
  21. if *enc {
  22. _, err = io.Copy(snappy.NewWriter(os.Stdout), os.Stdin)
  23. } else {
  24. _, err = io.Copy(os.Stdout, snappy.NewReader(os.Stdin))
  25. }
  26. if err != nil {
  27. fmt.Fprintf(os.Stderr, err.Error())
  28. return 1
  29. }
  30. return 0
  31. }
  32. func main() {
  33. os.Exit(run())
  34. }