This repository has been archived on 2024-05-03. You can view files and clone it, but cannot push or open issues or pull requests.
treefmt/main.go
Brian McGee fb9493884c
chore: refactor logging initialisation
Signed-off-by: Brian McGee <brian@bmcgee.ie>
2024-05-02 10:31:25 +01:00

42 lines
1.2 KiB
Go

package main
import (
_ "embed"
"fmt"
"os"
"git.numtide.com/numtide/treefmt/build"
"git.numtide.com/numtide/treefmt/cli"
"github.com/alecthomas/kong"
)
// We embed the sample toml file for use with the init flag.
//
//go:embed init.toml
var initBytes []byte
func main() {
// This is to maintain compatibility with 1.0.0 which allows specifying the version with a `treefmt --version` flag
// on the 'default' command. With Kong it would be better to have `treefmt version` so it would be treated as a
// separate command. As it is, we would need to weaken some of the `existingdir` and `existingfile` checks kong is
// doing for us in the default format command.
for _, arg := range os.Args {
if arg == "--version" || arg == "-V" {
fmt.Printf("%s %s\n", build.Name, build.Version)
return
} else if arg == "--init" || arg == "-i" {
if err := os.WriteFile("treefmt.toml", initBytes, 0o644); err != nil {
fmt.Printf("Failed to write treefmt.toml: %v\n", err)
os.Exit(1)
}
fmt.Printf("Generated treefmt.toml. Now it's your turn to edit it.\n")
return
}
}
ctx := kong.Parse(&cli.Cli)
cli.ConfigureLogging()
ctx.FatalIfErrorf(ctx.Run())
}