diff --git a/src/contexts/cli/cli.go b/src/contexts/cli/cli.go index 1858ed13..40778c2f 100644 --- a/src/contexts/cli/cli.go +++ b/src/contexts/cli/cli.go @@ -240,13 +240,13 @@ var Index = &ctx.Context{Name: "cli", Help: "管理中心", "cmd_error: 输出错误", }, Form: map[string]int{ "cmd_timeout": 1, - "cmd_daemon": 1, "cmd_active": 1, + "cmd_daemon": 1, "cmd_dir": 1, "cmd_env": 2, "cmd_log": 1, "cmd_temp": -1, - "cmd_parse": 1, + "cmd_parse": 2, "cmd_error": 0, "app_log": 1, }, Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) (e error) { @@ -426,7 +426,7 @@ var Index = &ctx.Context{Name: "cli", Help: "管理中心", case "cut": bio := bufio.NewScanner(out) bio.Scan() - for heads := kit.Split(bio.Text(), -1); bio.Scan(); { + for heads := kit.Split(bio.Text(), kit.Int(kit.Select("-1", m.Optionv("cmd_parse"), 1))); bio.Scan(); { for i, v := range kit.Split(bio.Text(), len(heads)) { m.Add("append", heads[i], v) } @@ -752,19 +752,21 @@ var Index = &ctx.Context{Name: "cli", Help: "管理中心", }) case "stat": - m.Cmdy("nfs.dir", "src", "dir_deep", "dir_type", "file", "dir_sort", "line", "int_r").CopyTo(m, "append") + m.Cmdy("nfs.dir", "src", "dir_deep", "dir_type", "file", "dir_sort", "line", "int_r") case "trend": - m.Cmdy("nfs.git", "sum").CopyTo(m, "append") + m.Cmdy("nfs.git", "sum", "-n", kit.Select("20", arg, 1)) + + case "review": + m.Cmdy("nfs.git", "diff") case "submit": if len(arg) > 1 { - m.Cmdp(0, []string{"git init"}, []string{"cli.system", "git"}, [][]string{ - []string{"stash"}, []string{"pull"}, []string{"stash", "pop"}, + m.Cmdp(0, []string{"git submit"}, []string{"cli.system", "git"}, [][]string{ []string{"commit", "-am", arg[1]}, []string{"push"}, }) } - m.Cmdy("nfs.git", "status") + m.Cmdy("nfs.git", "logs", "table.limit", "3") case "import": list := [][]string{} diff --git a/src/contexts/cli/version.go b/src/contexts/cli/version.go index 345fb6c7..c0a71a5a 100644 --- a/src/contexts/cli/version.go +++ b/src/contexts/cli/version.go @@ -4,5 +4,5 @@ var version = struct { host string self int }{ - "2019-08-21 19:45:50", "ZYB-20190522USI", 402, + "2019-08-22 09:22:24", "mac", 412, } diff --git a/src/contexts/ctx/misc.go b/src/contexts/ctx/misc.go index a58d8667..fc97d9c7 100644 --- a/src/contexts/ctx/misc.go +++ b/src/contexts/ctx/misc.go @@ -158,8 +158,8 @@ func (m *Message) Format(arg ...interface{}) string { if len(msg.Meta["option"]) > 0 { meta = append(meta, fmt.Sprintf(" option: %d %v\n", len(msg.Meta["option"]), msg.Meta["option"])) for _, k := range msg.Meta["option"] { - if v, ok := msg.Data[k]; ok { - meta = append(meta, fmt.Sprintf(" %s: %v\n", k, kit.Format(v))) + if _, ok := msg.Data[k]; ok { + // meta = append(meta, fmt.Sprintf(" %s: %v\n", k, kit.Format(v))) } else if v, ok := msg.Meta[k]; ok { meta = append(meta, fmt.Sprintf(" %s: %d %v\n", k, len(v), v)) } @@ -168,8 +168,8 @@ func (m *Message) Format(arg ...interface{}) string { if len(msg.Meta["append"]) > 0 { meta = append(meta, fmt.Sprintf(" append: %d %v\n", len(msg.Meta["append"]), msg.Meta["append"])) for _, k := range msg.Meta["append"] { - if v, ok := msg.Data[k]; ok { - meta = append(meta, fmt.Sprintf(" %s: %v\n", k, kit.Format(v))) + if _, ok := msg.Data[k]; ok { + // meta = append(meta, fmt.Sprintf(" %s: %v\n", k, kit.Format(v))) } else if v, ok := msg.Meta[k]; ok { meta = append(meta, fmt.Sprintf(" %s: %d %v\n", k, len(v), v)) } diff --git a/src/contexts/nfs/nfs.go b/src/contexts/nfs/nfs.go index d504dfb6..4b98a6ee 100644 --- a/src/contexts/nfs/nfs.go +++ b/src/contexts/nfs/nfs.go @@ -542,7 +542,8 @@ var Index = &ctx.Context{Name: "nfs", Help: "存储中心", "commit": map[string]interface{}{"args": []interface{}{"commit", "-am"}}, "branch": map[string]interface{}{"args": []interface{}{"branch", "-v"}}, "status": map[string]interface{}{"args": []interface{}{"status", "-sb"}}, - "log": map[string]interface{}{"args": []interface{}{"log", "-n", "@table.limit", "--skip", "@table.offset", "pretty", "date"}}, + "log": map[string]interface{}{"args": []interface{}{"log", "-n", "@table.limit", "--skip", "@table.offset", "pretty", "cmd_parse", "cut", "5", "date"}}, + "logs": map[string]interface{}{"args": []interface{}{"log", "-n", "@table.limit", "--skip", "@table.offset", "--stat"}}, "trans": map[string]interface{}{ "date": "--date=format:%m/%d %H:%M", "pretty": "--pretty=format:%h %ad %an %s", @@ -669,13 +670,29 @@ var Index = &ctx.Context{Name: "nfs", Help: "存储中心", return }}, "git": &ctx.Command{Name: "git sum", Help: "版本控制", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) (e error) { - if len(arg) > 0 && arg[0] == "sum" || len(arg) > 1 && arg[1] == "sum" { - args := []string{"log"} - if len(arg) > 1 && arg[1] == "sum" && arg[0] != "" { - args = append(args, "-C", arg[0]) + if len(arg) == 0 { + m.Cmdy("nfs.config", "git") + return + } + + if p := m.Cmdx("nfs.path", arg[0]); p != "" && !m.Confs("git", arg[0]) { + m.Option("git_dir", p) + arg = arg[1:] + } else { + wd, e := os.Getwd() + m.Assert(e) + m.Option("git_dir", wd) + } + + if len(arg) > 0 && arg[0] == "sum" { + args := []string{"-C", m.Option("git_dir"), "log", "--shortstat", "--pretty=commit: %ad", "--date=format:%Y-%m-%d %H:%M"} + if len(arg) > 1 { + args = append(args, arg[1:]...) + } else { + args = append(args, "--reverse") } - args = append(args, "--reverse", "--shortstat", "--pretty=commit: %ad", "--date=format:%Y-%m-%d %H:%M") - if out, e := exec.Command("git", args...).CombinedOutput(); m.Assert(e) { + + if out, e := exec.Command("git", args...).CombinedOutput(); e == nil { for _, v := range strings.Split(string(out), "commit: ") { if l := strings.Split(v, "\n"); len(l) > 2 { fs := strings.Split(strings.TrimSpace(l[2]), ", ") @@ -703,24 +720,12 @@ var Index = &ctx.Context{Name: "nfs", Help: "存储中心", } } m.Table() + } else { + m.Log("warn", "%v", string(out)) } return } - if len(arg) == 0 { - m.Cmdy("nfs.config", "git") - return - } - - if p := m.Cmdx("nfs.path", arg[0]); p != "" && !m.Confs("git", arg[0]) { - m.Option("git_dir", p) - arg = arg[1:] - } else { - wd, e := os.Getwd() - m.Assert(e) - m.Option("git_dir", wd) - } - cmds := []string{} if v := m.Confv("git", []string{arg[0], "cmds"}); v != nil { cmds = append(cmds, kit.Trans(v)...) @@ -738,8 +743,7 @@ var Index = &ctx.Context{Name: "nfs", Help: "存储中心", args = append(args, arg[1:]...) for i, _ := range args { - v := m.Parse(args[i]) - if v == args[i] || v == "" { + if v := m.Parse(args[i]); v == args[i] || v == "" { args[i] = kit.Select(args[i], m.Conf("git", []string{"trans", args[i]})) } else { args[i] = v diff --git a/src/plugin/context/index.shy b/src/plugin/context/index.shy index 441025da..59f50796 100644 --- a/src/plugin/context/index.shy +++ b/src/plugin/context/index.shy @@ -1,8 +1,8 @@ fun project "项目" "" "" \ private \ - select "" values plugin values submit values trend values stat values init \ - text "" \ + select "" values plugin values submit values review values trend values stat values init \ + text "" imports plugin_see action auto \ button "执行" \ exports see name see diff --git a/usr/librarys/toolkit.js b/usr/librarys/toolkit.js index f416a991..47e317b1 100644 --- a/usr/librarys/toolkit.js +++ b/usr/librarys/toolkit.js @@ -494,6 +494,7 @@ kit = toolkit = { Color: function(s) { s = s.replace(/\033\[1m/g, "") s = s.replace(/\033\[36m/g, "") + s = s.replace(/\033\[33m/g, "") s = s.replace(/\033\[32m/g, "") s = s.replace(/\033\[32;1m/g, "") s = s.replace(/\033\[31m/g, "") @@ -997,7 +998,6 @@ function Canvas(plugin, option, output, width, height, space, msg) { if (keys.length < 3) { return } - canvas.beginPath() var sum = 0, total = 0 for (var i = 0; i < nrow; i++) { @@ -1033,23 +1033,22 @@ function Canvas(plugin, option, output, width, height, space, msg) { } for (var i = 0; i < nrow; i++) { + canvas.beginPath() + canvas.moveTo(step*i, data["min"][i]/total*height) if (data["sum"][i] < data["end"][i]) { - canvas.moveTo(step*i, data["min"][i]/total*height) - canvas.lineTo(step*i, data["sum"][i]/total*height) - - canvas.moveTo(step*i, data["max"][i]/total*height) - canvas.lineTo(step*i, data["end"][i]/total*height) + canvas.strokeStyle = "white", canvas.lineTo(step*i, data["sum"][i]/total*height), canvas.stroke() + canvas.fillStyle = "white", canvas.fillRect(step*i-step/3, data["sum"][i]/total*height, step/3*2, (data["end"][i]-data["sum"][i])/total*height) + canvas.moveTo(step*i, data["end"][i]/total*height) } else { - canvas.moveTo(step*i, data["min"][i]/total*height) - canvas.lineTo(step*i, data["end"][i]/total*height) - - canvas.moveTo(step*i, data["max"][i]/total*height) - canvas.lineTo(step*i, data["sum"][i]/total*height) + canvas.strokeStyle = "black", canvas.lineTo(step*i, data["end"][i]/total*height), canvas.stroke() + canvas.fillStyle = "black", canvas.fillRect(step*i-step/3, data["sum"][i]/total*height, step/3*2, (data["end"][i]-data["sum"][i])/total*height) + canvas.moveTo(step*i, data["sum"][i]/total*height) } + canvas.lineTo(step*i, data["max"][i]/total*height), canvas.stroke() } - canvas.strokeStyle = conf.data.style - canvas.lineWidth = conf.data.width - canvas.stroke() + // canvas.strokeStyle = conf.data.style + // canvas.lineWidth = conf.data.width + // canvas.stroke() }, show: function(p) { index = parseInt(p.x/step)