Compare commits

..

No commits in common. "main" and "v0.0.4" have entirely different histories.
main ... v0.0.4

2 changed files with 25 additions and 27 deletions

7
imp.go
View File

@ -16,7 +16,10 @@ import (
) )
func runImp(root, ignore string, write, gofumpt, gofumptExtra bool) error { func runImp(root, ignore string, write, gofumpt, gofumptExtra bool) error {
mod := modInfo(root) mod, err := modInfo()
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) {
@ -46,7 +49,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 && !errors.Is(err, format.ErrNoImports) { if err != nil {
return fmt.Errorf("could not format file %q: %w", walkPath, err) return fmt.Errorf("could not format file %q: %w", walkPath, err)
} }

45
main.go
View File

@ -12,13 +12,6 @@ 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")
@ -29,34 +22,35 @@ func mainErr() error {
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 {
return err fmt.Println(err)
}
cwd, err := os.Getwd()
if err != nil {
return err
} }
if *stdinFlag { if *stdinFlag {
mod := modInfo(cwd) mod, err := modInfo()
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 {
return err fmt.Println(err)
return
} }
formatted, err := impFormat(src, mod, *gofumptFlag, *gofumptExtraFlag) formatted, err := impFormat(src, mod, *gofumptFlag, *gofumptExtraFlag)
if err != nil { if err != nil {
return err fmt.Println(err)
} }
fmt.Print(string(formatted)) fmt.Print(formatted)
return nil
} }
root := cwd root := "."
if fs.NArg() > 0 { if fs.NArg() > 0 {
root = fs.Arg(0) root = fs.Arg(0)
} }
return runImp(root, *ignoreFlag, *writeFlag, *gofumptFlag, *gofumptExtraFlag) if err := runImp(root, *ignoreFlag, *writeFlag, *gofumptFlag, *gofumptExtraFlag); err != nil {
fmt.Println(err)
}
} }
type module struct { type module struct {
@ -82,15 +76,16 @@ func (m *module) UnmarshalJSON(data []byte) error {
return nil return nil
} }
func modInfo(dir string) module { func modInfo() (module, error) {
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{} return module{}, err
} }
var m module var m module
_ = json.Unmarshal(out, &m) if err := json.Unmarshal(out, &m); err != nil {
return m return m, err
}
return m, nil
} }