golang使用Viper的demo

栏目: Go · 发布时间: 8年前

获取配置例子

package main

import (
    "flag"
    "fmt"
    "runtime"

    "github.com/spf13/viper"
)
type Config struct {
    Base BaseConf `mapstructure:"base"`
}

type BaseConf struct {
    pidfile   string `mapstructure:"pidfile"`
}

var (
    Conf     *Config
    confPath string
)

func init() {
    flag.StringVar(&confPath, "d", "./", " set logic config file path")
}

func InitConfig() (err error) {
    Conf = NewConfig()
    viper.SetConfigName("logic") // 配置文件的名字
    viper.SetConfigType("toml") // 配置文件的类型
    viper.AddConfigPath(confPath) // 配置文件的路径

    if err := viper.ReadInConfig(); err != nil {
        return err
    }

    if err := viper.Unmarshal(&Conf); err != nil {
        panic(fmt.Errorf("unable to decode into struct:  %s \n", err))
    }

    return nil
}

func NewConfig() *Config {
    return &Config{
        Base: BaseConf{
            Pidfile:   "/tmp/comet.pid",
        },
    }
}

# toml 文件内容为
[base]
pidfile = "/tmp/logic.pid"

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

Programming Python

Programming Python

Mark Lutz / O'Reilly Media / 2006-8-30 / USD 59.99

Already the industry standard for Python users, "Programming Python" from O'Reilly just got even better. This third edition has been updated to reflect current best practices and the abundance of chan......一起来看看 《Programming Python》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

随机密码生成器
随机密码生成器

多种字符组合密码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具