github.com/NeowayLabs/nash@v0.2.2-0.20200127205349-a227041ffd50/stdbin/write/main.go (about)

     1  package main
     2  
     3  import (
     4  	"bytes"
     5  	"fmt"
     6  	"io"
     7  	"os"
     8  )
     9  
    10  var banner = fmt.Sprintf("%s <file> <data>\n", os.Args[0])
    11  
    12  func fatal(msg string) {
    13  	fmt.Fprintf(os.Stderr, "%s", msg)
    14  	os.Exit(1)
    15  }
    16  
    17  func main() {
    18  	if len(os.Args) <= 1 ||
    19  		len(os.Args) > 3 {
    20  		fatal(banner)
    21  	}
    22  
    23  	var (
    24  		fname = os.Args[1]
    25  		in    io.Reader
    26  	)
    27  
    28  	if len(os.Args) == 2 {
    29  		in = os.Stdin
    30  	} else {
    31  		in = bytes.NewBufferString(os.Args[2])
    32  	}
    33  
    34  	err := write(fname, in)
    35  	if err != nil {
    36  		fatal(err.Error())
    37  	}
    38  }