This repository has been archived on 2021-05-09. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
jolheiser ea7687d011
Implement ReadDir
Signed-off-by: jolheiser <john.olheiser@gmail.com>
2021-02-19 20:41:44 -06:00
_test Initial Commit 2021-02-16 22:57:59 -06:00
.gitignore Initial Commit 2021-02-16 22:57:59 -06:00
bench.txt Rebrand overlay 2021-02-17 22:39:52 -06:00
go.mod Rebrand overlay 2021-02-17 22:39:52 -06:00
LICENSE Initial Commit 2021-02-16 22:57:59 -06:00
Makefile Initial Commit 2021-02-16 22:57:59 -06:00
overlay_test.go Implement ReadDir 2021-02-19 20:41:44 -06:00
overlay.go Implement ReadDir 2021-02-19 20:41:44 -06:00
README.md Rebrand overlay 2021-02-17 22:39:52 -06:00

Overlay

Overlay File System

Overlay is an easy way to implement a file system in such a way that production assets can be overridden by assets on disk.

Usage

package main

import (
	"embed"
	
	"go.jolheiser.com/overlay"
)

//go:embed assets
var assets embed.FS

func main() {
	ofs, err := overlay.New("/var/lib/myapp/custom", assets)
	if err != nil {
		panic(err)
    }
    ...
}

If /var/lib/myapp/custom has an assets sub-directory, this implementation works.

However, if /var/lib/myapp/custom matches the assets directory layout, you can use WithSub like so...

package main

import (
	"embed"
	
	"go.jolheiser.com/overlay"
)

//go:embed assets
var assets embed.FS

func main() {
	ofs, err := overlay.New("/var/lib/myapp/custom", assets, overlay.WithSub("assets"))
	if err != nil {
		panic(err)
    }
    ...
}

License

MIT