/faketmpfile

faketmpfile: go library for passing buffers and readers to exec'd processes

Primary LanguageGoMIT LicenseMIT

faketmp: or how to pass buffers after shelling out

faketmp is a library for people writing go who often need to create temp files to pass data to command line applications. A common usecase might be creating thumbnails from a http upload, or processing data in by spawning a helper process with lower privileges.

func main() { 
	rdr := strings.NewReader("Hello, world!\n")
	tmpfile, err := faketmpfile.FakeTemp(rdr)
	if err != nil {
		log.Fatal(err)
	}
	defer tmpfile.Close() // Needed to clean up pipes and return error from copy.
	cat, _ := exec.LookPath("sha1sum")
	cmd := exec.Command(cat, tmpfile.Name())
	tmpfile.ExtraFiles(cmd)
	data, err := cmd.CombinedOutput()
	fmt.Println(string(data))
}