package main import ( "bufio" "encoding/xml" "flag" "fmt" "log" "os" ) var ( docType = `` output = flag.String( "output", "-", "Write output to `file` (stdout by default)", ) ) func usage() { fmt.Fprintf(os.Stderr, "usage: epgpruner [-output file] URL\n") flag.PrintDefaults() os.Exit(2) } func main() { log.SetPrefix("epgtrim: ") log.SetFlags(0) flag.Usage = usage flag.Parse() if flag.NArg() != 1 { usage() os.Exit(1) } URL := flag.Args()[0] playlist, err := NewPlaylist(URL) if err != nil { log.Fatal(err) } outfile := os.Stdout if *output != "-" { f, err := os.Create(*output) if err != nil { log.Fatal(err) } outfile = f defer f.Close() } wr := bufio.NewWriter(outfile) defer wr.Flush() wr.Write([]byte(xml.Header + docType + "\n")) e := xml.NewEncoder(wr) e.Indent("", " ") err = e.Encode(playlist.Schedule.EPG) if err != nil { log.Fatal(err) } }