mirror of https://git.jolheiser.com/cfg.git
parent
48b98f65aa
commit
ae439db5e5
|
@ -1,9 +1,9 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"flag"
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
@ -40,21 +40,29 @@ func maine() error {
|
|||
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)
|
||||
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
|
||||
if fs.NArg() > 1 {
|
||||
fi, err := os.Create(fs.Arg(1))
|
||||
|
@ -75,7 +83,7 @@ func maine() error {
|
|||
|
||||
var data any
|
||||
|
||||
inData, err := os.ReadFile(in)
|
||||
inData, err := io.ReadAll(in)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue