12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package main
- import (
- "errors"
- "flag"
- "io/ioutil"
- "os"
- "github.com/golang/snappy"
- )
- var (
- decode = flag.Bool("d", false, "decode")
- encode = flag.Bool("e", false, "encode")
- )
- func run() error {
- flag.Parse()
- if *decode == *encode {
- return errors.New("exactly one of -d or -e must be given")
- }
- in, err := ioutil.ReadAll(os.Stdin)
- if err != nil {
- return err
- }
- out := []byte(nil)
- if *decode {
- out, err = snappy.Decode(nil, in)
- if err != nil {
- return err
- }
- } else {
- out = snappy.Encode(nil, in)
- }
- _, err = os.Stdout.Write(out)
- return err
- }
- func main() {
- if err := run(); err != nil {
- os.Stderr.WriteString(err.Error() + "\n")
- os.Exit(1)
- }
- }
|