simple example for config setting via .env

This commit is contained in:
Helmut Merz 2023-11-13 17:45:34 +01:00
parent 1f45c625e9
commit 9e73d5f69e
5 changed files with 18 additions and 4 deletions

1
.gitignore vendored
View file

@ -1,3 +1,4 @@
bin*
.env
*.log
*.sqlite

View file

@ -16,6 +16,7 @@ func Config() lib.Config {
Home: ovr(".", HOME),
Logging: &logging.Cfg{
Logfile: ovr("log/scopes.log", LOGFILE),
Level: ovr("info", LOGLEVEL),
},
}
@ -25,6 +26,7 @@ func Config() lib.Config {
// collect here the names of fields that may be overridden via
// explicit Override() or SCOPES_* environment settings.
const (
HOME = "home"
LOGFILE = "logfile"
HOME = "home"
LOGFILE = "logfile"
LOGLEVEL = "loglevel"
)

View file

@ -1,6 +1,8 @@
module demo
go 1.20
go 1.21
toolchain go1.21.0
require git.sr.ht/~cco/go-scopes v0.1.20

6
examples/demo/rundemo.sh Executable file
View file

@ -0,0 +1,6 @@
set -a
source .env
echo "log level: $SCOPES_LOGLEVEL"
bin/demo

View file

@ -82,6 +82,9 @@ type module map[string]citem
func (m module) Compile(f forge.FE) forge.FPtr {
v := voc.NewVoc(f.Voc())
for key, val := range m {
v.Register(key, val)
}
return f.Code(v)
}
@ -102,7 +105,7 @@ type record struct {
}
func (r *record) Compile(f forge.FE) forge.FPtr {
return nil
return f.Code(r)
}
func (r *record) Data() interface{} {