Compare commits
3 Commits
Author | SHA1 | Date |
---|---|---|
jolheiser | 587759243a | |
jolheiser | 49a668d1a9 | |
jolheiser | 5c91d2e95a |
7
imp.go
7
imp.go
|
@ -16,10 +16,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func runImp(root, ignore string, write, gofumpt, gofumptExtra bool) error {
|
func runImp(root, ignore string, write, gofumpt, gofumptExtra bool) error {
|
||||||
mod, err := modInfo()
|
mod := modInfo(root)
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
globs, err := globber.ParseFile(ignore)
|
globs, err := globber.ParseFile(ignore)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !errors.Is(err, fs.ErrNotExist) {
|
if !errors.Is(err, fs.ErrNotExist) {
|
||||||
|
@ -49,7 +46,7 @@ func runImp(root, ignore string, write, gofumpt, gofumptExtra bool) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
formatted, err := impFormat(data, mod, gofumpt, gofumptExtra)
|
formatted, err := impFormat(data, mod, gofumpt, gofumptExtra)
|
||||||
if err != nil {
|
if err != nil && !errors.Is(err, format.ErrNoImports) {
|
||||||
return fmt.Errorf("could not format file %q: %w", walkPath, err)
|
return fmt.Errorf("could not format file %q: %w", walkPath, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
43
main.go
43
main.go
|
@ -12,6 +12,13 @@ import (
|
||||||
var Version = "develop"
|
var Version = "develop"
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
if err := mainErr(); err != nil {
|
||||||
|
fmt.Fprintln(os.Stderr, err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func mainErr() error {
|
||||||
fs := flag.NewFlagSet("imp", flag.ExitOnError)
|
fs := flag.NewFlagSet("imp", flag.ExitOnError)
|
||||||
writeFlag := fs.Bool("write", false, "Write the re-ordered imports instead of just printing them")
|
writeFlag := fs.Bool("write", false, "Write the re-ordered imports instead of just printing them")
|
||||||
fs.BoolVar(writeFlag, "w", *writeFlag, "--write")
|
fs.BoolVar(writeFlag, "w", *writeFlag, "--write")
|
||||||
|
@ -22,35 +29,34 @@ func main() {
|
||||||
stdinFlag := fs.Bool("stdin", false, "Format stdin")
|
stdinFlag := fs.Bool("stdin", false, "Format stdin")
|
||||||
|
|
||||||
if err := fs.Parse(os.Args[1:]); err != nil {
|
if err := fs.Parse(os.Args[1:]); err != nil {
|
||||||
fmt.Println(err)
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
cwd, err := os.Getwd()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if *stdinFlag {
|
if *stdinFlag {
|
||||||
mod, err := modInfo()
|
mod := modInfo(cwd)
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
src, err := io.ReadAll(os.Stdin)
|
src, err := io.ReadAll(os.Stdin)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
return err
|
||||||
return
|
|
||||||
}
|
}
|
||||||
formatted, err := impFormat(src, mod, *gofumptFlag, *gofumptExtraFlag)
|
formatted, err := impFormat(src, mod, *gofumptFlag, *gofumptExtraFlag)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
return err
|
||||||
}
|
}
|
||||||
fmt.Print(string(formatted))
|
fmt.Print(string(formatted))
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
root := "."
|
root := cwd
|
||||||
if fs.NArg() > 0 {
|
if fs.NArg() > 0 {
|
||||||
root = fs.Arg(0)
|
root = fs.Arg(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := runImp(root, *ignoreFlag, *writeFlag, *gofumptFlag, *gofumptExtraFlag); err != nil {
|
return runImp(root, *ignoreFlag, *writeFlag, *gofumptFlag, *gofumptExtraFlag)
|
||||||
fmt.Println(err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type module struct {
|
type module struct {
|
||||||
|
@ -76,16 +82,15 @@ func (m *module) UnmarshalJSON(data []byte) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func modInfo() (module, error) {
|
func modInfo(dir string) module {
|
||||||
cmd := exec.Command("go", "mod", "edit", "--json")
|
cmd := exec.Command("go", "mod", "edit", "--json")
|
||||||
|
cmd.Dir = dir
|
||||||
out, err := cmd.Output()
|
out, err := cmd.Output()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return module{}, err
|
return module{}
|
||||||
}
|
}
|
||||||
|
|
||||||
var m module
|
var m module
|
||||||
if err := json.Unmarshal(out, &m); err != nil {
|
_ = json.Unmarshal(out, &m)
|
||||||
return m, err
|
return m
|
||||||
}
|
|
||||||
return m, nil
|
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue