Home

cfg @main - refs - log -
-
https://git.jolheiser.com/cfg.git
Convert between various configuration formats
tree log patch
feat: stdin default Signed-off-by: jolheiser <john.olheiser@gmail.com>
Signature
-----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEgqEQpE3xoo1QwJO/uFOtpdp7v3oFAmZiaWUACgkQuFOtpdp7 v3rsqA//ercNbvoLXPgw8ik2fwLrkMHnG9ocqNTbykcC1hXKlI1qzKCkiJkIEJU/ HEzsUS3bJJruDSv/+Q1av7OM823xliz6RwSxRB5kN004bjZUr2RRPqaRdouxXYke zAzuUH9YM4khbHAEhHs1bPM8wzZ0u1BrfGX1C6zQJY4461uPpb0zKQcxV1gj5T2t pNrYm5XWDd69RAv96w/hWhtxknaD3aeKXOhbLUeauakJIjg0laKRydBUt4AhNCQL HGvsYKEf2j7cHxGdphpJhNQl+HKG7CXI8zj7HLAOSoxv1becDbqy2Vr8UhbuY8p9 H+GDyeYqVdx7dJcgXcSMqwj16kk3so19XlWN0M9KF5JMFqAziR3BIraBmlYNU0E5 m8hoywQ7odyth9ICpYsKcPIDajRNxqv3Z+aIvMEOGSDNK11cpyBCBvKvD9fToTQk iA0yom695xO07jEL2ar/Ax7/AxwCfpo159eXgiNEclLsLE9NGZiCSA+ji6FuQ03Q 8FCPX1HILGhhI009UFxYLOx/q3lyDNRUs0ZvDlu3cXwQ0OCPhsU3bPl89uhEsnlZ RIzH7jqvb1cbU/OGsd3Uy83P1noC7UVBfpI8n+5Gb97t1NaYkyxugM+rl83kxvXw 5tEavXEuMlqXAhYzWenZWb7WUXSmPdFu/mHtoxO62k6u/a9qSXc= =t0q3 -----END PGP SIGNATURE-----
jolheiser <john.olheiser@gmail.com>
8 months ago
1 changed files, 17 additions(+), 9 deletions(-)
M cmd/cfg/main.gocmd/cfg/main.go
diff --git a/cmd/cfg/main.go b/cmd/cfg/main.go
index ccb142eef5410054bc4359e8af877717d7376604..78047fc41c269ec9ef3407fa990bd3329fac3230 100644
--- a/cmd/cfg/main.go
+++ b/cmd/cfg/main.go
@@ -1,9 +1,9 @@
 package main
 
 import (
-	"errors"
 	"flag"
 	"fmt"
+	"io"
 	"os"
 	"path/filepath"
 	"strings"
@@ -40,19 +40,27 @@ 	if err := fs.Parse(os.Args[1:]); err != nil {
 		return err
 	}
 
-	if fs.NArg() < 1 {
-		return errors.New("cfg requires at least an input file")
-	}
-
 	cleanArg := func(arg string) string {
 		return strings.TrimPrefix(filepath.Ext(arg), ".")
 	}
 
-	in := fs.Arg(0)
-	if unmarshal == nil {
-		if err := fromFunc(cleanArg(fs.Arg(0))); err != nil {
+	in := os.Stdin
+	if fs.NArg() > 0 {
+		fi, err := os.Open(fs.Arg(0))
+		if err != nil {
 			return err
 		}
+		defer fi.Close()
+		in = fi
+
+		if unmarshal == nil {
+			if err := fromFunc(cleanArg(fs.Arg(0))); err != nil {
+				return err
+			}
+		}
+
+	} else if unmarshal == nil {
+		unmarshal = cfg.JSON.Unmarshal
 	}
 
 	out := os.Stdout
@@ -75,7 +83,7 @@ 	}
 
 	var data any
 
-	inData, err := os.ReadFile(in)
+	inData, err := io.ReadAll(in)
 	if err != nil {
 		return err
 	}