+ src, err := ioutil.ReadFile(srcPath)
+ if err != nil {
+ return err
+ }
+ var x bytes.Buffer
+ if t == FileTypePlain {
+ x.Write(src)
+ } else if t == FileTypePasswd {
+ pws, err := ParsePasswds(bytes.NewReader(src))
+ if err != nil {
+ return err
+ }
+ err = SerializePasswds(&x, pws)
+ if err != nil {
+ return err
+ }
+ } else if t == FileTypeGroup {
+ grs, err := ParseGroups(bytes.NewReader(src))
+ if err != nil {
+ return err
+ }
+ err = SerializeGroups(&x, grs)
+ if err != nil {
+ return err
+ }
+ } else {
+ return fmt.Errorf("unsupported file type %v", t)