pomerium/internal/controlplane/filemgr/config.go
Caleb Doxsey 10912add67
config: detect underlying file changes (#1775)
* wip

* cleanup

* add test

* use uuid for temp dir, derive root CA path from filemgr for tests

* fix comment

* fix double close

* use latest notify
2021-01-14 18:06:02 -07:00

35 lines
656 B
Go

package filemgr
import (
"os"
"path/filepath"
"github.com/google/uuid"
)
type config struct {
cacheDir string
}
// An Option updates the config.
type Option = func(*config)
// WithCacheDir returns an Option that sets the cache dir.
func WithCacheDir(cacheDir string) Option {
return func(cfg *config) {
cfg.cacheDir = cacheDir
}
}
func newConfig(options ...Option) *config {
cfg := new(config)
cacheDir, err := os.UserCacheDir()
if err != nil {
cacheDir = filepath.Join(os.TempDir(), uuid.New().String())
}
WithCacheDir(filepath.Join(cacheDir, "pomerium", "envoy", "files"))(cfg)
for _, o := range options {
o(cfg)
}
return cfg
}