1
0
mirror of https://shylinux.com/x/icebergs synced 2025-04-26 01:24:05 +08:00

add misc/git/count.go

This commit is contained in:
harveyshao 2021-08-16 20:47:19 +08:00
parent cd3d57a6f7
commit 155763119a
2 changed files with 64 additions and 0 deletions

View File

@ -46,6 +46,12 @@ func _dir_show(m *ice.Message, root string, name string, level int, deep bool, d
p := path.Join(root, name, f.Name())
if !(dir_type == TYPE_CAT && f.IsDir() || dir_type == TYPE_DIR && !f.IsDir()) && (dir_reg == nil || dir_reg.MatchString(f.Name())) {
switch cb := m.Optionv(kit.Keycb(DIR)).(type) {
case func(p string):
cb(p)
continue
}
for _, field := range fields {
switch field {
case kit.MDB_TIME:

58
misc/git/count.go Normal file
View File

@ -0,0 +1,58 @@
package git
import (
"strings"
ice "github.com/shylinux/icebergs"
"github.com/shylinux/icebergs/base/nfs"
kit "github.com/shylinux/toolkits"
)
const COUNT = "count"
func init() {
Index.Merge(&ice.Context{Commands: map[string]*ice.Command{
COUNT: {Name: "count path auto count", Help: "统计", Action: map[string]*ice.Action{
COUNT: {Name: "count", Help: "计数", Hand: func(m *ice.Message, arg ...string) {
files := map[string]int{}
lines := map[string]int{}
m.Option(nfs.DIR_DEEP, ice.TRUE)
m.Option(nfs.DIR_TYPE, nfs.TYPE_CAT)
m.Cmdy(nfs.DIR, arg, func(file string) {
if strings.Contains(file, "bin/") {
return
}
switch kit.Ext(file) {
case "sum", "log":
return
}
files["total"]++
files[kit.Ext(file)]++
m.Cmdy(nfs.CAT, file, func(text string, line int) {
if kit.Ext(file) == "go" {
switch {
case strings.HasPrefix(text, "func"):
lines["_func"]++
case strings.HasPrefix(text, "type"):
lines["_type"]++
}
}
lines["total"]++
lines[kit.Ext(file)]++
})
})
for k := range lines {
m.Push("type", k)
m.Push("files", files[k])
m.Push("lines", lines[k])
}
m.SortIntR("lines")
m.StatusTime()
}},
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Cmdy(nfs.DIR, arg)
}},
}})
}