]> ruderich.org/simon Gitweb - nsscash/nsscash.git/blobdiff - main.go
Add support for group files
[nsscash/nsscash.git] / main.go
diff --git a/main.go b/main.go
index cef6c61d41bfe9dfef0c8995ab25cf8b4762d7c9..b10f57e55b92776a18ff5dfa76fb7ed25cc5b39c 100644 (file)
--- a/main.go
+++ b/main.go
@@ -82,14 +82,29 @@ func main() {
                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