Skip to content

gwaylib/conf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README

Export the env to the shell

export PRJ_ROOT=$HOME/ws/test

Example for RootDir

package db

import (
    "os/filepath"

	"github.com/gwaylib/conf"
	"github.com//gwaylib/qsql"
	_ "github.com/go-sql-driver/mysql"
)

var dbFile = filepath.Join(conf.RootDir(),  "etc/db.cfg")

func DB(section string) *qsql.DB {
	return qsql.CacheDB(dbFile, section)
}

func HasDB(section string) (*qsql.DB, error) {
	return qsql.HasDB(dbFile, section)
}

For realtime ini read

package db

import (
	"github.com/gwaylib/conf"
	"github.com/gwaylib/conf/ini"
)

func main() {
    etcRoot := filepath.Join(conf.RootDir(), "etc")
    etc := ini.NewIni(etcRoot).GetFile("etc.ini") // read disk file every times.
    str := etc.String("test", "str")
    if str != "abc" {
        panic("expect abc, but : " + str)
    }
}

For memory cache ini read

package db

import (
	"github.com/gwaylib/conf"
	"github.com/gwaylib/conf/ini"
)

func main() {
    etcRoot := filepath.Join(conf.RootDir(), "etc")
    // etcCache := ini.NewTimeoutIniCache(etcRoot, 5 * time.Munite) // the cache should reload when loaded after 5*time.Minute
    etcCache := ini.NewCacheIni(etcRoot).GetFile("etc.ini")
    str := etc.String("test", "str")
    if str != "abc" {
        panic("expect abc, but : " + str)
    }
}

About

conf package for go project

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages