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)
}
if err != nil {
log.Fatal(err)
}
- pws, err := ParsePasswds(bytes.NewReader(src))
- if err != nil {
- log.Fatal(err)
- }
var x bytes.Buffer
- err = SerializePasswds(&x, pws)
- if err != nil {
- log.Fatal(err)
+ 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)
+ }
+ } 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)
}
// We must create the file first or deployFile() will abort