Golangでini.v1を利用してコンフィグファイルを読みこむ方法です。
ディレクトリ構成
.
├── config
│ └── config.go
├── config.ini
└── main.go
ini.v1をインストール
$ go get gopkg.in/ini.v1
設定ファイル作成
config.ini
[db]
host = 127.0.0.1
port = 8889
user = root
password = root
name = example
ファイル読み込み
config.go
package config
import (
"log"
"os"
"gopkg.in/ini.v1"
)
type ConfigList struct {
DbHost string
DbPort int
DbUser string
DbPassword string
DbName string
}
var Config ConfigList
func init() {
cfg, err := ini.Load("config.ini") // configファイル読み込み
if err != nil {
log.Printf("Failed to read file: %v", err)
os.Exit(1) // プログラム終了
}
Config = ConfigList{
DbHost: cfg.Section("db").Key("host").String(),
DbPort: cfg.Section("db").Key("port").MustInt(),
DbUser: cfg.Section("db").Key("user").String(),
DbPassword: cfg.Section("db").Key("password").String(),
DbName: cfg.Section("db").Key("name").String(),
}
}
呼び出し
main.go
package main
import (
"fmt"
"myapp/config"
)
func main() {
fmt.Printf("DbName: %v\n", config.Config.DbName)
}
結果
DbName: example