Categorygithub.com/koshatul/goembed
module
0.5.0
Repository: https://github.com/koshatul/goembed.git
Documentation: pkg.go.dev

# README

goembed

Build Status

goembed takes a list of local files and embeds them into golang source files.

Compression

Supported compression algorithms:

  • deflate
  • gzip
  • lzw
  • snappy
  • snappy (stream)
  • zlib
  • none

Wrappers

Supported wrappers:

  • nodep No runtime dependencies, self-contained.
  • afero using spf13/afero.

Usage

Install the command line tool first.

go get github.com/koshatul/goembed/cmd/...

goembed has sane defaults and will safely generate a go package from a directory or individual list of files.

$ goembed -f src/webasset/assets.go ./web

Then in your application just import the generated package

If you prefer to use a pseudo-filesystem there is support for using afero as a wrapper.

package main

import (
	"log"
	"net/http"

	"github.com/koshatul/goembed/examples/webserver/assets"
)

func main() {
	fileserver := http.FileServer(assets.Fs)
	http.Handle("/", http.StripPrefix("/", fileserver))
	log.Println("Listening on :8080")
	http.ListenAndServe(":8080", nil)
}

Then the filesystem should be visible from http://localhost:8080/

Usage:
  goembed [flags]
  goembed [command]

Available Commands:
  help        Help about any command
  version     Print the version

Flags:
  -c, --compression string   Compression to use, options are 'deflate', 'gzip', 'lzw', 'snappy', 'snappystream', 'zlib' or 'none' (default "snappy")
  -d, --debug                Debug output
  -f, --file string          Output file, or '-' for STDOUT (default "-")
  -h, --help                 help for goembed
  -p, --package string       golang package name for file (default: based on output file directory)
      --version              version for goembed
  -w, --wrapper string       Wrapper to use, options are 'none' or 'afero' (default "none")

Use "goembed [command] --help" for more information about a command.

Examples

Examples are kept in the examples directory, the usage above is the webserver example.

Similar projects

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author