Skip to content

gkzy/gini

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gini

一个可以读写ini配置文件的小项目,支持go mod

项目地址:

https://github.com/gkzy/gini

安装

go get -u github.com/gkzy/gini

入门演示

app.conf

app_name = admin-client
run_mode = dev
http_addr = 9090
auto_render = true
session_on = false
gzip_on = true
template_left = <<
template_right = >>

[database]
user = root
password = 123456
host = 192.168.0.111
port = 3306
dev = true

main.go

package main

import (
	"fmt"
	"github.com/gkzy/gini"
	"log"
)

func main() {
	// 当前目录
	ini := gini.New(".")
	// 载入文件
	err := ini.Load("app.conf")
	if err != nil {
		log.Fatalf("load file error :%v", err)
		return
	}
	// 获取并打印黙认section的key值
	appName := ini.Get("app_name")
	fmt.Printf("%#v\n", appName)

	httpPort, _ := ini.GetInt("http_addr")
	fmt.Printf("%#v\n", httpPort)

	gzipOn := ini.GetBool("gzip_on")
	fmt.Printf("%#v\n", gzipOn)

	fmt.Println("")

	// 获取并打印所有section name
	sections := ini.GetSections()
	fmt.Printf("%#v\n", sections)

	fmt.Println("")

	// 获取并打印 默认 块的 k,v
	defaultMap := ini.GetKeys("")
	for i, item := range defaultMap {
		fmt.Println(i, item.K, item.V)
	}

	fmt.Println("")

	// 获取并打印 database 块的 k,v
	databaseMap := ini.GetKeys("database")
	for i, item := range databaseMap {
		fmt.Println(i, item.K, item.V)
	}
}

执行结果

"admin-client"
9090
true

[]string{"database"}

0 app_name admin-client
1 run_mode dev
2 http_addr 9090
3 auto_render true
4 session_on false
5 gzip_on true
6 template_left <<
7 template_right >>

0 user root
1 password 123456
2 host 192.168.0.111
3 port 3306
4 dev true

其他方法

  • 支持读取[]byte
func (ini *INI) LoadByte(data []byte, lineSep, kvSep string) error 
  • 支持读取 io.Reader
func (ini *INI) LoadReader(r io.Reader, lineSep, kvSep string) error 
  • 支持设置默认section的值
func (ini *INI) Set(key string, value interface{}) 
  • 支持写ini配置到其他文件
func (ini *INI) WriteFile(filename, content string) (n int, err error) 
  • 支持写ini配置到原始文件
func (ini *INI) WriteOriginFile() error

在使用的项目

About

A lib written in golang to read the ini configuration file

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages