X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=main.go;h=52727408962b0030baef955f4c679131e32ad734;hb=6383e468f1d5b281159cd46d800204a1aa718cd2;hp=db21997fee0cf71bdcfe5ed2836b7b092ea5b10b;hpb=0f368ece4ec73bc058d5fb1459221ffd860d3bf3;p=nsscash%2Fnsscash.git diff --git a/main.go b/main.go index db21997..5272740 100644 --- a/main.go +++ b/main.go @@ -61,7 +61,9 @@ func main() { if err != nil { log.Fatal(err) } - err = WriteStateIfChanged(cfg.StatePath, state) + // NOTE: Make sure to call WriteState() only if there were no + // errors (see WriteState() and README) + err = WriteState(cfg.StatePath, state) if err != nil { log.Fatal(err) } @@ -86,14 +88,23 @@ func main() { if t == FileTypePlain { x.Write(src) } else if t == FileTypePasswd { - pws, err := ParsePasswds(bytes.NewReader(src)) - if err != nil { - log.Fatal(err) - } - err = SerializePasswds(&x, pws) - if err != nil { - log.Fatal(err) - } + pws, err := ParsePasswds(bytes.NewReader(src)) + if err != nil { + log.Fatal(err) + } + err = SerializePasswds(&x, pws) + if err != nil { + log.Fatal(err) + } + } else if t == FileTypeGroup { + grs, err := ParseGroups(bytes.NewReader(src)) + if err != nil { + log.Fatal(err) + } + err = SerializeGroups(&x, grs) + if err != nil { + log.Fatal(err) + } } else { log.Fatalf("unsupported file type %v", t) }