forked from x/icebergs
opt some
This commit is contained in:
parent
8e7a403b35
commit
f226c5f08e
@ -54,7 +54,7 @@ func init() {
|
||||
|
||||
for {
|
||||
logs.Println("run %s", kit.Join(arg, ice.SP))
|
||||
if m.Sleep("1s"); IsSuccess(m.Cmd(SYSTEM, arg)) {
|
||||
if m.Sleep("100ms"); IsSuccess(m.Cmd(SYSTEM, arg)) {
|
||||
logs.Println("exit")
|
||||
break
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ func _hash_inputs(m *ice.Message, prefix, chain string, field, value string) {
|
||||
func _hash_insert(m *ice.Message, prefix, chain string, arg ...string) string {
|
||||
defer m.Lock(prefix, chain)()
|
||||
|
||||
if value := m.Confm(prefix, kit.Keys(HASH, arg[1])); value != nil {
|
||||
if value := m.Confm(prefix, kit.Keys(HASH, arg[1])); value != nil && arg[1] != "" {
|
||||
value = kit.GetMeta(value)
|
||||
for i := 2; i < len(arg)-1; i += 2 {
|
||||
kit.Value(value, arg[i], arg[i+1])
|
||||
@ -231,19 +231,19 @@ func HashImport(m *ice.Message, arg ...Any) *ice.Message {
|
||||
return m.Cmdy(IMPORT, m.PrefixKey(), "", HASH, arg)
|
||||
}
|
||||
|
||||
func HashTarget(m *ice.Message, h string, add func() Any) Any {
|
||||
defer m.Lock()()
|
||||
|
||||
p := m.Confv(m.PrefixKey(), kit.Keys(HASH, h, TARGET))
|
||||
if pp, ok := p.(Map); ok && len(pp) == 0 {
|
||||
p = nil
|
||||
}
|
||||
|
||||
if p == nil && add != nil {
|
||||
p = add()
|
||||
m.Confv(m.PrefixKey(), kit.Keys(HASH, h, TARGET), p)
|
||||
}
|
||||
return p
|
||||
func HashTarget(m *ice.Message, h string, add func() Any) (p Any) {
|
||||
m.Assert(h != "")
|
||||
HashSelectUpdate(m, h, func(value ice.Map) {
|
||||
p = value[TARGET]
|
||||
if pp, ok := p.(Map); ok && len(pp) == 0 {
|
||||
p = nil
|
||||
}
|
||||
if p == nil && add != nil {
|
||||
p = add()
|
||||
value[TARGET] = p
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
func HashPrunesValue(m *ice.Message, field, value string) {
|
||||
m.OptionFields(m.Config(FIELD))
|
||||
|
@ -48,8 +48,9 @@ func _dream_show(m *ice.Message, name string) {
|
||||
if !strings.Contains(name, "-") || !strings.HasPrefix(name, "20") {
|
||||
name = m.Time("20060102-") + kit.ReplaceAll(name, "-", "_")
|
||||
}
|
||||
// defer m.ProcessOpen(m.MergePod(m.Option(mdb.NAME, name)))
|
||||
defer m.ProcessOpen(m.MergePod(m.Option(mdb.NAME, name)))
|
||||
defer m.Echo(m.MergePod(m.Option(mdb.NAME, name)))
|
||||
defer m.PushRefresh()
|
||||
|
||||
p := path.Join(ice.USR_LOCAL_WORK, name)
|
||||
if pid := m.Cmdx(nfs.CAT, path.Join(p, ice.Info.PidPath)); pid != "" && kit.FileExists("/proc/"+pid) {
|
||||
@ -146,7 +147,7 @@ func init() {
|
||||
m.Cmd(mdb.DELETE, m.Prefix(SPACE), "", mdb.HASH, m.OptionSimple(mdb.NAME))
|
||||
} else {
|
||||
m.Cmd(mdb.DELETE, m.Prefix(SPACE), "", mdb.HASH, m.OptionSimple(mdb.NAME))
|
||||
m.Sleep("1s", DREAM, cli.START, m.OptionSimple(mdb.NAME))
|
||||
m.Sleep("3s", DREAM, cli.START, m.OptionSimple(mdb.NAME))
|
||||
}
|
||||
}},
|
||||
nfs.TRASH: {Name: "trash", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
||||
|
@ -35,6 +35,7 @@ func _xterm_get(m *ice.Message, h string, must bool) (f *os.File) {
|
||||
m.Assert(err)
|
||||
|
||||
m.Go(func() {
|
||||
mdb.HashSelectUpdate(m, h, func(value ice.Map) { value["_cmd"] = cmd })
|
||||
buf := make([]byte, ice.MOD_BUFS)
|
||||
for {
|
||||
if n, e := tty.Read(buf); !m.Warn(e) {
|
||||
@ -56,6 +57,13 @@ const XTERM = "xterm"
|
||||
func init() {
|
||||
Index.MergeCommands(ice.Commands{
|
||||
XTERM: {Name: "xterm hash refresh", Help: "终端", Actions: ice.MergeAction(ice.Actions{
|
||||
ice.CTX_EXIT: {Hand: func(m *ice.Message, arg ...string) {
|
||||
mdb.HashSelectValue(m, func(value ice.Map) {
|
||||
if cmd, ok := value["_cmd"].(*exec.Cmd); ok {
|
||||
cmd.Process.Kill()
|
||||
}
|
||||
})
|
||||
}},
|
||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||
switch mdb.HashInputs(m, arg); arg[0] {
|
||||
case mdb.TYPE:
|
||||
@ -95,14 +103,14 @@ func init() {
|
||||
pty.Setsize(_xterm_get(m, m.Option(mdb.HASH), true), &pty.Winsize{Rows: uint16(kit.Int(m.Option("rows"))), Cols: uint16(kit.Int(m.Option("cols")))})
|
||||
}},
|
||||
"rename": {Name: "rename", Help: "重命名", Hand: func(m *ice.Message, arg ...string) {
|
||||
mdb.HashModify(m, m.OptionSimple(mdb.HASH), arg)
|
||||
mdb.HashModify(m, arg)
|
||||
}},
|
||||
"select": {Name: "select", Help: "连接", Hand: func(m *ice.Message, arg ...string) {
|
||||
mdb.HashModify(m, m.OptionSimple(mdb.HASH), mdb.TEXT, m.Option(ice.MSG_DAEMON))
|
||||
mdb.HashModify(m, mdb.TEXT, m.Option(ice.MSG_DAEMON))
|
||||
m.Cmd("", "input", arg)
|
||||
}},
|
||||
"input": {Name: "input", Help: "输入", Hand: func(m *ice.Message, arg ...string) {
|
||||
mdb.HashModify(m, m.OptionSimple(mdb.HASH), mdb.TIME, m.Time())
|
||||
mdb.HashModify(m, mdb.TIME, m.Time())
|
||||
if b, e := base64.StdEncoding.DecodeString(strings.Join(arg, "")); m.Assert(e) {
|
||||
_xterm_get(m, m.Option(mdb.HASH), true).Write(b)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user