spongy/spongycli/spongycli.go

56 lines
974 B
Go

package main
import (
"bufio"
"fmt"
"flag"
"log"
"os"
"path/filepath"
)
var playback int
var running bool = true
func inputLoop(nw *Network) {
bf := bufio.NewScanner(os.Stdin)
for bf.Scan() {
line := bf.Bytes()
nw.Write(line)
}
}
func usage() {
fmt.Fprintf(os.Stderr, "Usage: %s [OPTIONS] NETDIR\n", os.Args[0])
fmt.Fprintf(os.Stderr, "\n")
fmt.Fprintf(os.Stderr, "NETDIR is the path to your IRC directory (see README)\n")
fmt.Fprintf(os.Stderr, "\n")
fmt.Fprintf(os.Stderr, "OPTIONS:\n")
flag.PrintDefaults()
}
func main() {
flag.Usage = usage
flag.IntVar(&playback, "playback", 0, "Number of lines to play back on startup")
flag.Parse()
if flag.NArg() != 1 {
usage()
os.Exit(2)
}
netDir, err := filepath.Abs(flag.Arg(0))
if err != nil {
log.Fatal(err)
}
nw := NewNetwork(netDir)
defer nw.Close()
go inputLoop(nw)
outq := make(chan string, 50) // to stdout
go nw.Tail(outq)
for line := range outq {
fmt.Println(line)
}
}