本文整理汇总了Golang中github.com/gonuts/config.Config.HasSection方法的典型用法代码示例。如果您正苦于以下问题:Golang Config.HasSection方法的具体用法?Golang Config.HasSection怎么用?Golang Config.HasSection使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/gonuts/config.Config
的用法示例。
在下文中一共展示了Config.HasSection方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: load_env_from_cfg
func (ctx *Context) load_env_from_cfg(cfg *gocfg.Config) error {
if !cfg.HasSection("hwaf-env") {
return nil
}
section := "hwaf-env"
options, err := cfg.Options(section)
if err != nil {
return err
}
for _, k := range options {
v, err := cfg.String(section, k)
if err != nil {
continue
}
v = os.ExpandEnv(v)
vv := os.Getenv(k)
if vv != "" && vv != v {
// we don't override parent environment!
// would be too confusing
ctx.Warn(
"configuration tries to override env.var [%s] with [%s] (current=%s)\n",
k, v, vv,
)
}
err = os.Setenv(k, v)
if err != nil {
ctx.Warn("problem setting env. var [%s]: %v\n", k, err)
}
}
return nil
}
示例2: handle_toolchain_section
func (a *asetup_t) handle_toolchain_section(lcfg *gocfg.Config, lcfg_fname string) error {
var err error
n := "hwaf-" + a.cmd.Name()
section := "hwaf-toolchain"
if !lcfg.HasSection(section) {
if !lcfg.AddSection(section) {
err = fmt.Errorf("%s: could not create section [%s] in file [%s]",
n, section, lcfg_fname)
if err != nil {
return err
}
}
}
for k, v := range a.opts.toolchain {
if lcfg.HasOption(section, k) {
lcfg.RemoveOption(section, k)
}
ok := lcfg.AddOption(section, k, v)
if !ok {
err = fmt.Errorf(
"%s: could not add option [%s=%q] to file [%s]",
n, k, v, lcfg_fname,
)
if err != nil {
return err
}
}
}
return err
}
示例3: handle_env_section
func (a *asetup_t) handle_env_section(lcfg *gocfg.Config, lcfg_fname, dirname string) error {
var err error
n := "hwaf-" + a.cmd.Name()
section := "hwaf-env"
if !lcfg.HasSection(section) {
if !lcfg.AddSection(section) {
err = fmt.Errorf("%s: could not create section [%s] in file [%s]",
n, section, lcfg_fname)
if err != nil {
return err
}
}
}
// add a few asetup defaults...
for k, v := range map[string]string{
"SVNGROUPS": "svn+ssh://svn.cern.ch/reps/atlasgroups",
"SVNGRP": "svn+ssh://svn.cern.ch/reps/atlasgrp",
"SVNINST": "svn+ssh://svn.cern.ch/reps/atlasinst",
"SVNOFF": "svn+ssh://svn.cern.ch/reps/atlasoff",
"SVNPERF": "svn+ssh://svn.cern.ch/reps/atlasperf",
"SVNPHYS": "svn+ssh://svn.cern.ch/reps/atlasphys",
"SVNROOT": "svn+ssh://svn.cern.ch/reps/atlasoff",
"SVNUSR": "svn+ssh://svn.cern.ch/reps/atlasusr",
"TestArea": dirname,
} {
a.opts.env[k] = v
}
for k, v := range a.opts.env {
if lcfg.HasOption(section, k) {
lcfg.RemoveOption(section, k)
}
ok := lcfg.AddOption(section, k, v)
if !ok {
err = fmt.Errorf(
"%s: could not add option [%s=%q] to file [%s]",
n, k, v, lcfg_fname,
)
if err != nil {
return err
}
}
}
return err
}
示例4: hwaf_run_cmd_setup
func hwaf_run_cmd_setup(cmd *commander.Command, args []string) {
var err error
n := "hwaf-" + cmd.Name()
dirname := "."
switch len(args) {
case 0:
dirname = "."
case 1:
dirname = args[0]
default:
err = fmt.Errorf("%s: you need to give a directory name", n)
handle_err(err)
}
dirname = os.ExpandEnv(dirname)
dirname = filepath.Clean(dirname)
verbose := cmd.Flag.Lookup("v").Value.Get().(bool)
cfg_fname := cmd.Flag.Lookup("cfg").Value.Get().(string)
pkgdir := cmd.Flag.Lookup("pkgdir").Value.Get().(string)
variant := cmd.Flag.Lookup("variant").Value.Get().(string)
tags := cmd.Flag.Lookup("tags").Value.Get().(string)
projdirs := []string{}
const pathsep = string(os.PathListSeparator)
for _, v := range strings.Split(cmd.Flag.Lookup("p").Value.Get().(string), pathsep) {
if v != "" {
v = os.ExpandEnv(v)
v = filepath.Clean(v)
projdirs = append(projdirs, v)
}
}
if verbose {
fmt.Printf("%s: setup workarea [%s]...\n", n, dirname)
fmt.Printf("%s: projects=%v\n", n, projdirs)
if cfg_fname != "" {
fmt.Printf("%s: cfg-file=%s\n", n, cfg_fname)
}
}
if cfg_fname != "" && !path_exists(cfg_fname) {
err = fmt.Errorf("configuration file [%s] does not exist (or is not readable)", cfg_fname)
handle_err(err)
}
for _, projdir := range projdirs {
if !path_exists(projdir) {
err = fmt.Errorf("no such directory: [%s]", projdir)
handle_err(err)
}
pinfo := filepath.Join(projdir, "project.info")
if !path_exists(pinfo) {
err = fmt.Errorf("no such file: [%s]", pinfo)
handle_err(err)
}
}
pwd, err := os.Getwd()
handle_err(err)
defer os.Chdir(pwd)
err = os.Chdir(dirname)
handle_err(err)
if verbose {
fmt.Printf("%s: create local config...\n", n)
}
var lcfg *gocfg.Config
lcfg_fname := "local.conf"
// if the user provided a configuration file use that as a default
if cfg_fname != "" && path_exists(cfg_fname) {
lcfg, err = gocfg.ReadDefault(cfg_fname)
handle_err(err)
} else {
if path_exists(lcfg_fname) {
lcfg, err = gocfg.ReadDefault(lcfg_fname)
handle_err(err)
} else {
lcfg = gocfg.NewDefault()
}
}
section := "hwaf-cfg"
if !lcfg.HasSection(section) && !lcfg.AddSection(section) {
err = fmt.Errorf("%s: could not create section [%s] in file [%s]",
n, section, lcfg_fname)
handle_err(err)
}
// fetch a few informations from the first project.info
cmtcfg := g_ctx.Cmtcfg()
//projvers := time.Now().Format("20060102")
if len(projdirs) > 0 {
pinfo, err := hwaflib.NewProjectInfo(filepath.Join(projdirs[0], "project.info"))
handle_err(err)
cmtcfg, err = pinfo.Get("CMTCFG")
//.........这里部分代码省略.........