73 lines
1.5 KiB
Go
73 lines
1.5 KiB
Go
package editorconfig
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/codegangsta/cli"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
func LsCommand(c *cli.Context) error {
|
|
files, err := FindSourceFiles(c.Args())
|
|
if err != nil {
|
|
return err
|
|
}
|
|
nbFiles := strconv.Itoa(len(files))
|
|
fmt.Println(nbFiles + " source files are matched by the paths you gave " + "(" + strings.Join(c.Args(), ", ") + ")")
|
|
for _, file := range files {
|
|
fmt.Println(file)
|
|
}
|
|
fmt.Println()
|
|
|
|
configs := FindConfigFiles(files)
|
|
nbConfig := strconv.Itoa(len(configs))
|
|
fmt.Println(nbConfig + " .editorconfig files were found that apply to your files")
|
|
for _, c := range configs {
|
|
if c.IsRoot() {
|
|
fmt.Println("A root .editorconfig is in " + c.Path)
|
|
} else {
|
|
fmt.Println("A non-root .editorconfig is in " + c.Path)
|
|
}
|
|
}
|
|
|
|
fmt.Println()
|
|
|
|
return nil
|
|
}
|
|
|
|
func RulesCommand(c *cli.Context) error {
|
|
path := c.Args()[0]
|
|
configs := FindConfigFiles([]string{path})
|
|
rules := GetRulesToApplyToSourcePath(path, configs)
|
|
|
|
fmt.Printf("%d rules match the path %s\n", len(rules), path)
|
|
for key, value := range rules {
|
|
fmt.Println(key + " = " + value)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func CreateCliApp() *cli.App {
|
|
app := cli.NewApp()
|
|
|
|
app.Name = "editorconfig-cli"
|
|
|
|
app.Usage = "Validate and fix files based on the rules in your .editorconfig file"
|
|
|
|
app.Commands = []cli.Command{
|
|
{
|
|
Name: "ls",
|
|
Usage: "List files that will be matched by the arguments you give",
|
|
Action: LsCommand,
|
|
},
|
|
{
|
|
Name: "rules",
|
|
Usage: "List rules that match a given file",
|
|
Action: RulesCommand,
|
|
},
|
|
}
|
|
|
|
return app
|
|
}
|