Add CLI commands "ls" and "rules".
This commit is contained in:
72
editorconfig/cli.go
Normal file
72
editorconfig/cli.go
Normal file
@@ -0,0 +1,72 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user