Narcissus: edit configuration files as go structs
This go package aims to provide reflection for the Augeas library.
This allows to turn Augeas lenses into Go structs for easy parsing and modification of configuration files.
Example
import (
"log"
"honnef.co/go/augeas"
"github.com/raphink/narcissus"
)
func main() {
aug, err := augeas.New("/", "", augeas.None)
if err != nil {
log.Fatal("Failed to create Augeas handler")
}
n := narcissus.New(&aug)
user := n.NewPasswdUser("raphink")
if err != nil {
log.Fatalf("Failed to retrieve user: %v" err)
}
log.Printf("UID=%v", user.UID)
// Modify UID
user.UID = 42
err = n.Write(user)
if err != nil {
log.Fatalf("Failed to save user:…