func openOutput()

in cmd/seccomp-profiler/main.go [326:354]


func openOutput(goarch string) (io.WriteCloser, error) {
	if outFile == "-" {
		return os.Stdout, nil
	}

	t, err := template.New("outFile").Parse(outFile)
	if err != nil {
		return nil, err
	}
	buf := new(bytes.Buffer)
	err = t.Execute(buf, map[string]string{
		"GOOS":   "linux",
		"GOARCH": goarch,
	})
	if err != nil {
		return nil, err
	}
	outFile = buf.String()
	log.Println("Output File:", outFile)

	dir := filepath.Dir(outFile)
	if dir != "" {
		if err := os.MkdirAll(dir, 0o755); err != nil {
			return nil, err
		}
	}

	return os.Create(outFile)
}