Skip to content

Commit c86b884

Browse files
authored
Read from stdin when no file names are passed. (#41)
Signed-off-by: Daniel Moran <[email protected]>
1 parent 59beec6 commit c86b884

File tree

2 files changed

+20
-10
lines changed

2 files changed

+20
-10
lines changed

main.go

+8-1
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,21 @@ func main() {
5151
DoDiff: doDiff,
5252
}
5353

54+
if len(paths) == 0 {
55+
if err := gci.ProcessFile("<standard input>", os.Stdin, os.Stdout, flagSet); err != nil {
56+
report(err)
57+
}
58+
os.Exit(exitCode)
59+
}
60+
5461
for _, path := range paths {
5562
switch dir, err := os.Stat(path); {
5663
case err != nil:
5764
report(err)
5865
case dir.IsDir():
5966
report(gci.WalkDir(path, flagSet))
6067
default:
61-
if err := gci.ProcessFile(path, os.Stdout, flagSet); err != nil {
68+
if err := gci.ProcessFile(path, nil, os.Stdout, flagSet); err != nil {
6269
report(err)
6370
}
6471
}

pkg/gci/gci.go

+12-9
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ func replaceTempFilename(diff []byte, filename string) ([]byte, error) {
258258
func visitFile(set *FlagSet) filepath.WalkFunc {
259259
return func(path string, f os.FileInfo, err error) error {
260260
if err == nil && isGoFile(f) {
261-
err = processFile(path, os.Stdout, set)
261+
err = processFile(path, nil, os.Stdout, set)
262262
}
263263
return err
264264
}
@@ -274,20 +274,23 @@ func isGoFile(f os.FileInfo) bool {
274274
return !f.IsDir() && !strings.HasPrefix(name, ".") && strings.HasSuffix(name, ".go")
275275
}
276276

277-
func ProcessFile(filename string, out io.Writer, set *FlagSet) error {
278-
return processFile(filename, out, set)
277+
func ProcessFile(filename string, in io.Reader, out io.Writer, set *FlagSet) error {
278+
return processFile(filename, in, out, set)
279279
}
280280

281-
func processFile(filename string, out io.Writer, set *FlagSet) error {
281+
func processFile(filename string, in io.Reader, out io.Writer, set *FlagSet) error {
282282
var err error
283283

284-
f, err := os.Open(filename)
285-
if err != nil {
286-
return err
284+
if in == nil {
285+
f, err := os.Open(filename)
286+
if err != nil {
287+
return err
288+
}
289+
defer f.Close()
290+
in = f
287291
}
288-
defer f.Close()
289292

290-
src, err := ioutil.ReadAll(f)
293+
src, err := ioutil.ReadAll(in)
291294
if err != nil {
292295
return err
293296
}

0 commit comments

Comments
 (0)