Awesome Open Source
Awesome Open Source

Heads up! Gonzo is being polished at this stage so some APIs may change.

Gonzo GoDoc

File Processing Framework based on Go Pipelines.

Design

Gonzo is made up of File, Context, Stages, and Pipes.

File

File is an interface that mimics os.File with some additional APIs.

Pipes

Pipe holde a channel of files, a context for logging and deadlines, and a simple interface to pass files through a Stage.

Stages

Stages are where files are handled for processing.

Currently the follow stages are implemented, but writing new stages are supper simple.

ace Compile Ace templates.
archive/tar Work with tar archives.
archive/zip Work with zip Archives.
css Minify CSS
filter A collection of stages for filtering files.
fs Read and Write from Disk.
gcss Compile gcss to css.
gin A Go Server livereload utlity.
github Grab files from github.
html Minify HTML
js Minify JavaScript
livereload Livereload
passthrough Pass files through any executable.
resources go-resources binding.
s3 Put files to S3.
scss Compile SCSS to CSS.
util Some helpful utlites.
watch Watch files for change.
web Grab files from any URL.

Example

To compile scss files, minify the output, write it to disk, lifereload in browser, and upload it to Amazon S3, this all you need:

s3conf := s3.Config{
	AccessKey: os.Getenv("S3_ACCESSKEY"),
	SecretKey: os.Getenv("S3_SECRETE"),
	Name:      os.Getenv("S3_NAME"),
	Region:    s3.APSoutheast2,
	Perm:      s3.PublicRead,
}

lr := livereload.New(livereload.Config{LiveCSS: true})

err := s.Src(context.Background(), "app/style.scss").Then(
	util.Trim("app"),
	scss.Compile(),
	css.Minify(),
	fs.Dest("./public/assets/"),
	lr.Reload(),
	s3.Put(s3conf),
)
//Handle any _fatal_ error.

TODO:

  • Finish this document.
  • Add tests

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
go (14,468
golang (3,690
files (72

Find Open Source By Browsing 7,000 Topics Across 59 Categories