marknown / oconfig

go config with json file

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

oconfig

useage

package jdconfig

import (
    "github.com/marknown/oconfig"

    "fmt"
    "sync"
)

// MailConfig mail 的配置信息
type MailConfig struct {
    Host      string // 邮件主机
    SSL       bool   // 是否 SSL 加密
    Port      int    // 主机端口
    FromEmail string // 邮件发送者地址
    FromName  string // 邮件发送者名称
    Username  string // 邮件发送者登录名
    Password  string // 邮件发送者登录密码
    Charset   string // 邮件字符集
    Weight    int    // 有多个邮件配置时,本邮件的权重
}

// Config 所有的配置信息
type Config struct {
    Mail  []MailConfig
}

var once = &sync.Once{}
var lock = &sync.Mutex{}
var packageConfigInstance *Config

// GetConfig 获取所有的配置信息 只初始化一次
func GetConfig() *Config {
    lock.Lock()
    defer lock.Unlock()

    if nil != packageConfigInstance {
        return packageConfigInstance
    }

    once.Do(func() {
        packageConfigInstance = &Config{}
        configPath := "./config.json"
        oconfig.GetConfig(configPath, packageConfigInstance)
    })

    return packageConfigInstance
}

About

go config with json file


Languages

Language:Go 100.0%