func main()

in vulndb/sqlutil/b64schema/main.go [30:94]


func main() {
	flag.Usage = func() {
		fmt.Printf("use: %s [flags] input.sql output.go\n", os.Args[0])
		flag.PrintDefaults()
		os.Exit(1)
	}
	pkg := flag.String("pkg", "schema", "set package name")
	flag.Parse()

	if len(flag.Args()) != 2 {
		flag.Usage()
	}

	f, err := os.Open(flag.Arg(0))
	if err != nil {
		panic(err)
	}
	defer f.Close()

	o, err := os.Create(flag.Arg(1))
	if err != nil {
		panic(err)
	}
	defer o.Close()

	var b bytes.Buffer
	var stmt []string

	scanner := bufio.NewScanner(f)
	for scanner.Scan() {
		line := scanner.Text()
		if b.Len() == 0 && line == "" {
			continue
		}
		b.WriteString(line)
		b.WriteString("\n")
		if strings.HasSuffix(line, ";") {
			s := base64.StdEncoding.EncodeToString(b.Bytes())
			stmt = append(stmt, s)
			b.Reset()
		}
	}

	if len(stmt) == 0 {
		panic("empty stmt")
	}

	t := gotype(f.Name())

	decoderTemplate.Execute(o, struct {
		Pkg  string
		Pub  string
		File string
	}{
		*pkg, t, f.Name(),
	})

	fmt.Fprintf(o, "// b64%s is auto-generated from %s.\n", t, f.Name())
	fmt.Fprintf(o, "var b64%s = []string{", t)
	fmt.Fprintf(o, "%q", stmt[0])
	for i := 1; i < len(stmt); i++ {
		fmt.Fprintf(o, ", %q", stmt[i])
	}
	fmt.Fprintf(o, "}\n")
}