1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
  | 
diff --git a/cmd/cfg/main.go b/cmd/cfg/main.go
index 71625957efd9690d9ff4f81139406b09a15068fa..ccb142eef5410054bc4359e8af877717d7376604 100644
--- a/cmd/cfg/main.go
+++ b/cmd/cfg/main.go
@@ -24,7 +24,7 @@ 		}
 		unmarshal = e.Unmarshal
 		return nil
 	}
-	fs.Func("from", "The format to convert from", fromFunc)
+	fs.Func("from", "The format to convert from [json(c), yaml, toml, nix, dhall]", fromFunc)
 	fs.Func("f", "--from", fromFunc)
 	toFunc := func(s string) error {
 		e, err := cfg.ParseEncoding(s)
@@ -34,7 +34,7 @@ 		}
 		marshal = e.Marshal
 		return nil
 	}
-	fs.Func("to", "The format to convert to", toFunc)
+	fs.Func("to", "The format to convert to [json, yaml, toml, nix]", toFunc)
 	fs.Func("t", "--to", toFunc)
 	if err := fs.Parse(os.Args[1:]); err != nil {
 		return err
@@ -44,9 +44,13 @@ 	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(strings.TrimPrefix(filepath.Ext(fs.Arg(0)), ".")); err != nil {
+		if err := fromFunc(cleanArg(fs.Arg(0))); err != nil {
 			return err
 		}
 	}
@@ -61,7 +65,7 @@ 		defer fi.Close()
 		out = fi
 
 		if marshal == nil {
-			if err := toFunc(strings.TrimPrefix(filepath.Ext(fs.Arg(1)), ".")); err != nil {
+			if err := toFunc(cleanArg(fs.Arg(1))); err != nil {
 				return err
 			}
 		}
  |