github.com/keltia/go-ipfs@v0.3.8-0.20150909044612-210793031c63/cmd/seccat/util.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"io"
     6  	"os"
     7  
     8  	eventlog "github.com/ipfs/go-ipfs/thirdparty/eventlog"
     9  )
    10  
    11  var log = eventlog.Logger("seccat")
    12  
    13  func exit(format string, vals ...interface{}) {
    14  	if format != "" {
    15  		fmt.Fprintf(os.Stderr, "seccat: error: "+format+"\n", vals...)
    16  	}
    17  	Usage()
    18  	os.Exit(1)
    19  }
    20  
    21  func out(format string, vals ...interface{}) {
    22  	if verbose {
    23  		fmt.Fprintf(os.Stderr, "seccat: "+format+"\n", vals...)
    24  	}
    25  }
    26  
    27  type logRW struct {
    28  	n  string
    29  	rw io.ReadWriter
    30  }
    31  
    32  func (r *logRW) Read(buf []byte) (int, error) {
    33  	n, err := r.rw.Read(buf)
    34  	if err == nil {
    35  		log.Debugf("%s read: %v", r.n, buf)
    36  	}
    37  	return n, err
    38  }
    39  
    40  func (r *logRW) Write(buf []byte) (int, error) {
    41  	log.Debugf("%s write: %v", r.n, buf)
    42  	return r.rw.Write(buf)
    43  }
    44  
    45  func (r *logRW) Close() error {
    46  	c, ok := r.rw.(io.Closer)
    47  	if ok {
    48  		return c.Close()
    49  	}
    50  	return nil
    51  }