From 180da1c6df90cfc5144c082899b9da103c427b5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1ximo=20Cuadros?= Date: Wed, 13 Jul 2016 19:05:23 +0200 Subject: [PATCH] basic command --- cmd/slinguist/main.go | 45 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 cmd/slinguist/main.go diff --git a/cmd/slinguist/main.go b/cmd/slinguist/main.go new file mode 100644 index 0000000..50c0f62 --- /dev/null +++ b/cmd/slinguist/main.go @@ -0,0 +1,45 @@ +package main + +import ( + "encoding/json" + "flag" + "fmt" + "io/ioutil" + "os" + "path/filepath" + + "github.com/src-d/simple-linguist" +) + +func main() { + flag.Parse() + root := flag.Arg(0) + + o := make(map[string][]string, 0) + filepath.Walk(root, func(path string, f os.FileInfo, err error) error { + if slinguist.IsVendor(f.Name()) || slinguist.IsDotFile(f.Name()) { + if f.IsDir() { + return filepath.SkipDir + } + + return nil + } + + if f.IsDir() { + return nil + } + + l, safe := slinguist.GetLanguageByExtension(path) + if !safe { + content, _ := ioutil.ReadFile(path) + l, safe = slinguist.GetLanguageByContent(path, content) + + } + + o[l] = append(o[l], path) + return nil + }) + + js, _ := json.MarshalIndent(o, "", " ") + fmt.Printf("%s\n", js) +}