Heads up! Gonzo is being polished at this stage so some APIs may change.
File Processing Framework based on Go Pipelines.
- Web App Development
- Log Analysis
- Continuous Integration
- Content Mangement Systems
For an explanation of why Gonzo was written read on its predecessor, slurp.
Gonzo is made up of File, Context, Stages, and Pipes.
File is an interface that mimics os.File with some additional APIs.
Pipe holde a channel of files, a context for logging and deadlines, and a simple interface to pass files through a Stage.
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.
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.
- Finish this doucment.
- Add tests