Feature parity with treefmt.rs #22
6
build/build.go
Normal file
6
build/build.go
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
package build
|
||||||
|
|
||||||
|
var (
|
||||||
|
Name = "treefmt"
|
||||||
|
Version = "v0.0.1+dev"
|
||||||
|
)
|
@ -18,6 +18,7 @@ type Format struct {
|
|||||||
TreeRoot string `type:"existingdir" default:"."`
|
TreeRoot string `type:"existingdir" default:"."`
|
||||||
Walk walk.Type `enum:"auto,git,filesystem" default:"auto" help:"The method used to traverse the files within --tree-root. Currently supports 'auto', 'git' or 'filesystem'."`
|
Walk walk.Type `enum:"auto,git,filesystem" default:"auto" help:"The method used to traverse the files within --tree-root. Currently supports 'auto', 'git' or 'filesystem'."`
|
||||||
Verbosity int `name:"verbose" short:"v" type:"counter" default:"0" env:"LOG_LEVEL" help:"Set the verbosity of logs e.g. -vv."`
|
Verbosity int `name:"verbose" short:"v" type:"counter" default:"0" env:"LOG_LEVEL" help:"Set the verbosity of logs e.g. -vv."`
|
||||||
|
Version bool `name:"version" short:"V" help:"Print version"`
|
||||||
|
|
||||||
Paths []string `name:"paths" arg:"" type:"path" optional:"" help:"Paths to format. Defaults to formatting the whole tree."`
|
Paths []string `name:"paths" arg:"" type:"path" optional:"" help:"Paths to format. Defaults to formatting the whole tree."`
|
||||||
Stdin bool `help:"Format the context passed in via stdin"`
|
Stdin bool `help:"Format the context passed in via stdin"`
|
||||||
|
15
main.go
15
main.go
@ -1,11 +1,26 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"git.numtide.com/numtide/treefmt/build"
|
||||||
"git.numtide.com/numtide/treefmt/cli"
|
"git.numtide.com/numtide/treefmt/cli"
|
||||||
"github.com/alecthomas/kong"
|
"github.com/alecthomas/kong"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ctx := kong.Parse(&cli.Cli)
|
ctx := kong.Parse(&cli.Cli)
|
||||||
ctx.FatalIfErrorf(ctx.Run())
|
ctx.FatalIfErrorf(ctx.Run())
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user