- Introduction
- Usage
- Contributing
- Reporting bugs
This project parses config files that have the same syntax as gitconfig files. It is a
minimal parser, and maybe a writer sometime in the future. It has no knowledge of git-specific
keys and as such, does not provide any convenience methods like config.GetUserName()
.
For these, look into go-gitconfig
Most of the code was copied and translated to Go from git/config.c
Currently, there is only one function: Parse
.
import "os/user"
import "path/filepath"
import "io/ioutil"
import "github.com/muja/goconfig"
user, _ := user.Current()
// don't forget to handle error!
gitconfig := filepath.Join(user.HomeDir, ".gitconfig")
bytes, _ := ioutil.ReadFile(gitconfig)
config, lineno, err := goconfig.Parse(bytes)
if err != nil {
// Note: config is non-nil and contains successfully parsed values
log.Fatalf("Error on line %d: %v.\n", err)
}
fmt.Println(config["user.name"])
fmt.Println(config["user.email"])
Contributions are welcome! Fork -> Push -> Pull request.
Just create an issue! I will try to reply as soon as possible.