Export the env to the shell
export PRJ_ROOT=$HOME/ws/testExample 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)
}
}