Compare commits

..

2 Commits

Author SHA1 Message Date
b1ek c777bd25b0
treat '-' input file as stdin 2024-06-03 09:06:03 +10:00
b1ek 4842b4ad52
use a different stdin read method 2024-06-03 09:04:47 +10:00
1 changed files with 8 additions and 9 deletions

17
main.go
View File

@ -1,8 +1,8 @@
package main package main
import ( import (
"bufio"
"fmt" "fmt"
"io"
"os" "os"
"strings" "strings"
@ -29,7 +29,7 @@ func main() {
} }
var file []byte var file []byte
if args.File != "" { if (args.File != "") && (args.File != "-") {
f, err := os.ReadFile(args.File) f, err := os.ReadFile(args.File)
if err != nil { if err != nil {
if os.IsNotExist(err) { if os.IsNotExist(err) {
@ -40,14 +40,13 @@ func main() {
} }
file = f file = f
} else { } else {
scanner := bufio.NewScanner(os.Stdin) data, err := io.ReadAll(os.Stdin)
for scanner.Scan() {
file = scanner.Bytes()
}
if scanner.Err() != nil { if err != nil {
panic(scanner.Err()) fmt.Printf("Coudln't read from stdin: %s", err.Error())
os.Exit(1)
} }
file = data
} }
code := string(file) code := string(file)
@ -70,7 +69,7 @@ func main() {
os.Exit(2) os.Exit(2)
} }
gen := shebang + "\n\n" + gencode(found) + "\n" + strings.Join(codelines[1:], "\n") gen := shebang + "\n\n" + gencode(found) + "\n\n" + strings.Join(codelines[1:], "\n")
if args.Outfile == "" { if args.Outfile == "" {
fmt.Printf("%s", gen) fmt.Printf("%s", gen)