func _main_gvcf_to_rotini(c *cli.Context) { var e error infn_slice := c.StringSlice("input") if len(infn_slice) < 1 { infn_slice = append(infn_slice, "-") } ain, err := autoio.OpenReadScanner(infn_slice[0]) if err != nil { fmt.Fprintf(os.Stderr, "%v", err) os.Stderr.Sync() os.Exit(1) } defer ain.Close() fp := os.Stdin if c.String("refstream") != "-" { fp, e = os.Open(c.String("refstream")) if e != nil { fmt.Fprintf(os.Stderr, "%v", e) os.Stderr.Sync() os.Exit(1) } defer fp.Close() } ref_stream := bufio.NewReader(fp) out := bufio.NewWriter(os.Stdout) g := gvcf.GVCFRefVar{} g.Init() line_no := 0 g.PastaBegin(out) for ain.ReadScan() { gvcf_line := ain.ReadText() line_no++ if len(gvcf_line) == 0 || gvcf_line == "" { continue } e := g.Pasta(gvcf_line, ref_stream, out) if e != nil { fmt.Fprintf(os.Stderr, "ERROR: %v at line %v\n", e, line_no) return } } g.PastaEnd(out) out.Flush() }