1
0
treerack/script/format.go

47 lines
710 B
Go
Raw Normal View History

package main
import (
"bytes"
"code.squareroundforest.org/arpio/treerack"
"fmt"
"log"
"os"
)
func format(name string) (err error) {
var inBytes []byte
if inBytes, err = os.ReadFile(name); err != nil {
return
}
in := bytes.NewBuffer(inBytes)
s := new(treerack.Syntax)
if err = s.ReadSyntax(in); err != nil {
return
}
out := bytes.NewBuffer(nil)
if err = s.Format(out); err != nil {
return
}
if bytes.Equal(out.Bytes(), inBytes) {
return
}
fmt.Fprintln(os.Stderr, name)
if err = os.WriteFile(name, out.Bytes(), 0644); err != nil {
return
}
return
}
func main() {
for _, f := range os.Args[1:] {
if err := format(f); err != nil {
log.Fatalf("%s: %v", f, err)
}
}
}