blob: aaf798483a463a186a5abdc1c2d6ddda24034bfb [file] [log] [blame]
package main
import (
"fmt"
"io"
"log"
"os"
"source.monogon.dev/metropolis/node/core/identity"
apb "source.monogon.dev/metropolis/proto/api"
)
type encoder struct {
out io.WriteCloser
}
func (e *encoder) writeNodeID(n *apb.Node) error {
id := identity.NodeID(n.Pubkey)
_, err := fmt.Fprintf(e.out, "%s\n", id)
return err
}
func (e *encoder) close() error {
if e.out != os.Stdout {
return e.out.Close()
}
return nil
}
func newOutputEncoder() *encoder {
var o io.WriteCloser
o = os.Stdout
// Redirect output to the file at flags.output, if the flag was provided.
if flags.output != "" {
of, err := os.Create(flags.output)
if err != nil {
log.Fatalf("Couldn't create the output file at %s: %v", flags.output, err)
}
o = of
}
if flags.format != "plaintext" {
log.Fatalf("Currently only the plaintext output format is supported.")
}
return &encoder{
out: o,
}
}