1
0
forked from x/icebergs
This commit is contained in:
IT 老营长 @云轩领航-创始人 2023-05-28 20:06:48 +08:00
parent b7582ee7d4
commit 0cc064db96
12 changed files with 32 additions and 28 deletions

View File

@ -113,7 +113,7 @@ func init() {
return return
} }
mdb.HashModify(m, mdb.HASH, kit.Select(h, value[mdb.HASH]), STATUS, STOP) mdb.HashModify(m, mdb.HASH, kit.Select(h, value[mdb.HASH]), STATUS, STOP)
m.Cmd(gdb.SIGNAL, gdb.KILL, value[PID]) kit.If(value[PID], func() { m.Cmd(gdb.SIGNAL, gdb.KILL, value[PID]) })
}) })
}}, }},
mdb.REMOVE: {Hand: func(m *ice.Message, arg ...string) { mdb.REMOVE: {Hand: func(m *ice.Message, arg ...string) {

View File

@ -174,8 +174,8 @@ func OptionPages(m *ice.Message, arg ...string) (page int, size int) {
m.Option(CACHE_OFFEND, kit.Select(m.Option(CACHE_OFFEND), arg, 0)) m.Option(CACHE_OFFEND, kit.Select(m.Option(CACHE_OFFEND), arg, 0))
m.Option(CACHE_LIMIT, kit.Select(m.Option(CACHE_LIMIT), arg, 1)) m.Option(CACHE_LIMIT, kit.Select(m.Option(CACHE_LIMIT), arg, 1))
m.Option(CACHE_FILTER, kit.Select(m.Option(CACHE_FILTER), arg, 2)) m.Option(CACHE_FILTER, kit.Select(m.Option(CACHE_FILTER), arg, 2))
m.Option(LIMIT, kit.Select(m.Option(LIMIT), arg, 0)) m.Option(OFFEND, kit.Select(m.Option(OFFEND), arg, 0))
m.Option(OFFEND, kit.Select(m.Option(OFFEND), arg, 1)) m.Option(LIMIT, kit.Select(m.Option(LIMIT), arg, 1))
size = kit.Int(kit.Select("10", m.Option(LIMIT))) size = kit.Int(kit.Select("10", m.Option(LIMIT)))
page = kit.Int(m.Option(OFFEND))/size + 1 page = kit.Int(m.Option(OFFEND))/size + 1
return return

View File

@ -130,6 +130,7 @@ func _dir_list(m *ice.Message, root string, dir string, level int, deep bool, di
const ( const (
PWD = "./" PWD = "./"
SRC = "src/" SRC = "src/"
BIN = "bin/"
USR = "usr/" USR = "usr/"
REQUIRE = "/require/" REQUIRE = "/require/"

View File

@ -84,7 +84,7 @@ func _cache_download(m *ice.Message, r *http.Response, file string, cb ice.Any)
return return
} }
last = value / base last = value / base
switch m.Logs(nfs.SAVE, nfs.FILE, p, mdb.COUNT, count, mdb.TOTAL, total, mdb.VALUE, value); cb := cb.(type) { switch m.Logs(nfs.SAVE, nfs.FILE, p, mdb.COUNT, kit.FmtSize(int64(count)), mdb.TOTAL, kit.FmtSize(int64(total)), mdb.VALUE, value); cb := cb.(type) {
case func(int, int, int): case func(int, int, int):
kit.If(cb != nil, func() { cb(count, total, value) }) kit.If(cb != nil, func() { cb(count, total, value) })
case nil: case nil:

View File

@ -198,3 +198,11 @@ func Script(m *ice.Message, str string, arg ...ice.Any) string {
return ice.Render(m, ice.RENDER_SCRIPT, kit.Format(str, arg...)) return ice.Render(m, ice.RENDER_SCRIPT, kit.Format(str, arg...))
} }
func ChatCmdPath(arg ...string) string { return path.Join("/chat/cmd/", path.Join(arg...)) } func ChatCmdPath(arg ...string) string { return path.Join("/chat/cmd/", path.Join(arg...)) }
func RequireFile(m *ice.Message, file string) string {
if strings.HasPrefix(file, nfs.PS) || strings.HasPrefix(file, ice.HTTP) {
return file
} else if file != "" {
return "/require/" + file
}
return ""
}

View File

@ -26,7 +26,7 @@ func _spide_create(m *ice.Message, name, link string) {
m.Logs(mdb.INSERT, SPIDE, name, LINK, link) m.Logs(mdb.INSERT, SPIDE, name, LINK, link)
mdb.HashSelectUpdate(m, mdb.HashCreate(m, CLIENT_NAME, name), func(value ice.Map) { mdb.HashSelectUpdate(m, mdb.HashCreate(m, CLIENT_NAME, name), func(value ice.Map) {
value[SPIDE_CLIENT] = kit.Dict(mdb.NAME, name, SPIDE_METHOD, http.MethodPost, "url", link, ORIGIN, u.Scheme+"://"+u.Host, value[SPIDE_CLIENT] = kit.Dict(mdb.NAME, name, SPIDE_METHOD, http.MethodPost, "url", link, ORIGIN, u.Scheme+"://"+u.Host,
tcp.PROTOCOL, u.Scheme, tcp.HOSTNAME, u.Hostname(), tcp.HOST, u.Host, nfs.PATH, dir, nfs.FILE, file, cli.TIMEOUT, "30s", tcp.PROTOCOL, u.Scheme, tcp.HOSTNAME, u.Hostname(), tcp.HOST, u.Host, nfs.PATH, dir, nfs.FILE, file, cli.TIMEOUT, "300s",
) )
}) })
} }

View File

@ -1,14 +1,11 @@
package chat package chat
import ( import (
"strings"
ice "shylinux.com/x/icebergs" ice "shylinux.com/x/icebergs"
"shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/aaa"
"shylinux.com/x/icebergs/base/ctx" "shylinux.com/x/icebergs/base/ctx"
"shylinux.com/x/icebergs/base/gdb" "shylinux.com/x/icebergs/base/gdb"
"shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/mdb"
"shylinux.com/x/icebergs/base/nfs"
"shylinux.com/x/icebergs/base/tcp" "shylinux.com/x/icebergs/base/tcp"
"shylinux.com/x/icebergs/base/web" "shylinux.com/x/icebergs/base/web"
kit "shylinux.com/x/toolkits" kit "shylinux.com/x/toolkits"
@ -17,8 +14,7 @@ import (
func _header_users(m *ice.Message, arg ...string) { func _header_users(m *ice.Message, arg ...string) {
if m.Warn(m.Option(ice.MSG_USERNAME) == "", ice.ErrNotLogin) { if m.Warn(m.Option(ice.MSG_USERNAME) == "", ice.ErrNotLogin) {
return return
} } else if m.Warn(m.Option(web.SHARE) != "", ice.ErrNotRight, "没有权限") {
if m.Warn(m.Option(web.SHARE) != "", ice.ErrNotRight, "没有权限") {
return return
} }
m.Cmdy(aaa.USER, mdb.MODIFY, aaa.USERNAME, m.Option(ice.MSG_USERNAME), m.ActionKey(), m.Option(m.ActionKey(), arg[0])) m.Cmdy(aaa.USER, mdb.MODIFY, aaa.USERNAME, m.Option(ice.MSG_USERNAME), m.ActionKey(), m.Option(m.ActionKey(), arg[0]))
@ -26,8 +22,7 @@ func _header_users(m *ice.Message, arg ...string) {
func _header_share(m *ice.Message, arg ...string) { func _header_share(m *ice.Message, arg ...string) {
if m.Warn(m.Option(ice.MSG_USERNAME) == "", ice.ErrNotLogin, "没有登录") { if m.Warn(m.Option(ice.MSG_USERNAME) == "", ice.ErrNotLogin, "没有登录") {
return return
} } else if kit.For(arg, func(k, v string) { m.Option(k, v) }); m.Option(mdb.LINK) == "" {
if kit.For(arg, func(k, v string) { m.Option(k, v) }); m.Option(mdb.LINK) == "" {
m.Cmdy(web.SHARE, mdb.CREATE, mdb.TYPE, web.LOGIN, arg) m.Cmdy(web.SHARE, mdb.CREATE, mdb.TYPE, web.LOGIN, arg)
} else { } else {
m.Option(mdb.LINK, tcp.PublishLocalhost(m, m.Option(mdb.LINK))) m.Option(mdb.LINK, tcp.PublishLocalhost(m, m.Option(mdb.LINK)))
@ -52,8 +47,7 @@ func _header_check(m *ice.Message, arg ...string) bool {
} }
if m.Option(ice.MSG_USERNAME) != "" { if m.Option(ice.MSG_USERNAME) != "" {
return true return true
} } else if ctx.OptionFromConfig(m, SSO) == "" && ctx.OptionFromConfig(m, web.LOGIN) == "" {
if ctx.OptionFromConfig(m, SSO) == "" && ctx.OptionFromConfig(m, web.LOGIN) == "" {
m.Option(SSO, GetSSO(m)) m.Option(SSO, GetSSO(m))
} }
return false return false
@ -81,20 +75,15 @@ func init() {
aaa.AVATAR: {Hand: _header_users}, aaa.AVATAR: {Hand: _header_users},
web.SHARE: {Hand: _header_share}, web.SHARE: {Hand: _header_share},
"webpack": {Hand: ctx.CmdHandler("webpack", "build")}, "webpack": {Hand: ctx.CmdHandler("webpack", "build")},
}, ctx.ConfAction(SSO, "")), Hand: func(m *ice.Message, arg ...string) { }, ctx.ConfAction(SSO, "", aaa.LANGUAGE, "zh")), Hand: func(m *ice.Message, arg ...string) {
if gdb.Event(m, HEADER_AGENT); !_header_check(m, arg...) { if gdb.Event(m, HEADER_AGENT); !_header_check(m, arg...) {
return return
} }
msg := m.Cmd(aaa.USER, m.Option(ice.MSG_USERNAME)) msg := m.Cmd(aaa.USER, m.Option(ice.MSG_USERNAME))
kit.For([]string{aaa.USERNICK, aaa.LANGUAGE}, func(k string) { m.Option(k, msg.Append(k)) }) kit.For([]string{aaa.USERNICK, aaa.LANGUAGE}, func(k string) { m.Option(k, msg.Append(k)) })
for _, k := range []string{aaa.BACKGROUND, aaa.AVATAR} { kit.For([]string{aaa.AVATAR, aaa.BACKGROUND}, func(k string) { m.Option(k, web.RequireFile(m, msg.Append(k))) })
if strings.HasPrefix(msg.Append(k), nfs.PS) || strings.HasPrefix(msg.Append(k), ice.HTTP) { kit.If(m.Option(aaa.LANGUAGE) == "", func() { m.Option(aaa.LANGUAGE, mdb.Config(m, aaa.LANGUAGE)) })
m.Option(k, msg.Append(k)) m.Echo(mdb.Config(m, TITLE)).Option(MENUS, mdb.Config(m, MENUS))
} else if msg.Append(k) != "" {
m.Option(k, "/require/"+msg.Append(k))
}
}
m.Echo(kit.Select(kit.Select("", strings.SplitN(ice.Info.Make.Remote, "://", 2), 1), mdb.Config(m, TITLE))).Option(MENUS, mdb.Config(m, MENUS))
}}, }},
}) })
} }

View File

@ -42,8 +42,8 @@ fieldset.macos.desktop>div.output>div.desktop>fieldset.web.code.compile>form.opt
fieldset.macos.desktop>div.output>div.desktop>fieldset.web.chat.iframe>div.status { display:none; } fieldset.macos.desktop>div.output>div.desktop>fieldset.web.chat.iframe>div.status { display:none; }
fieldset.macos.desktop>div.output>div.desktop>fieldset.web.chat.iframe>form.option>div.item.hash>input { width:360px; } fieldset.macos.desktop>div.output>div.desktop>fieldset.web.chat.iframe>form.option>div.item.hash>input { width:360px; }
fieldset.macos.desktop>div.output>div.desktop>fieldset.web.chat.macos.finder>div.status { display:none; } fieldset.macos.desktop>div.output>div.desktop>fieldset.web.chat.macos.finder>div.status { display:none; }
fieldset.macos.desktop>div.output>div.desktop>fieldset>div.output>fieldset>form.option>div.item { margin-right:0px; } /* fieldset.macos.desktop>div.output>div.desktop>fieldset>div.output>fieldset>form.option>div.item { margin-right:0px; } */
fieldset.macos.desktop>div.output>div.desktop>fieldset>div.output>fieldset>div.action>div.item { margin-right:0px; } /* fieldset.macos.desktop>div.output>div.desktop>fieldset>div.output>fieldset>div.action>div.item { margin-right:0px; } */
fieldset.macos.menu>div.output>div.item { padding:0 5px; float:right; cursor:pointer; } fieldset.macos.menu>div.output>div.item { padding:0 5px; float:right; cursor:pointer; }
fieldset.macos.menu>div.output>div.item.avatar>img { height:25px; } fieldset.macos.menu>div.output>div.item.avatar>img { height:25px; }
fieldset.macos.menu>div.output>div.menu { float:left; padding:0 20px; cursor:pointer; } fieldset.macos.menu>div.output>div.menu { float:left; padding:0 20px; cursor:pointer; }

View File

@ -65,6 +65,9 @@ func _binpack_all(m *ice.Message) {
for _, k := range kit.SortedKey(list) { for _, k := range kit.SortedKey(list) {
v := kit.Select(k, list[k]) v := kit.Select(k, list[k])
m.Cmd(nfs.DIR, nfs.PWD, nfs.PATH, kit.Dict(nfs.DIR_ROOT, v, nfs.DIR_REG, kit.ExtReg(SH, SHY, PY, JS, CSS, HTML))).Table(func(value ice.Maps) { m.Cmd(nfs.DIR, nfs.PWD, nfs.PATH, kit.Dict(nfs.DIR_ROOT, v, nfs.DIR_REG, kit.ExtReg(SH, SHY, PY, JS, CSS, HTML))).Table(func(value ice.Maps) {
if ice.Info.Make.Remote != "shylinux.com/x/contexts" && kit.HasPrefix(k, ice.USR_ICEBERGS) {
return
}
_binpack_file(m, w, kit.Path(v, value[nfs.PATH]), path.Join(k, value[nfs.PATH])) _binpack_file(m, w, kit.Path(v, value[nfs.PATH]), path.Join(k, value[nfs.PATH]))
}) })
} }
@ -76,7 +79,9 @@ func _binpack_all(m *ice.Message) {
} }
}) })
m.Option(nfs.DIR_REG, kit.ExtReg(nfs.SHY)) m.Option(nfs.DIR_REG, kit.ExtReg(nfs.SHY))
_binpack_dir(m, w, "usr/release/") if ice.Info.Make.Remote == "shylinux.com/x/contexts" {
_binpack_dir(m, w, "usr/release/")
}
} }
} }

View File

@ -122,7 +122,7 @@ func _install_stop(m *ice.Message, arg ...string) {
m.Cmd(cli.DAEMON, func(value ice.Maps) { m.Cmd(cli.DAEMON, func(value ice.Maps) {
kit.If(value[cli.PID] == m.Option(cli.PID), func() { m.Cmd(cli.DAEMON, cli.STOP, kit.Dict(mdb.HASH, value[mdb.HASH])) }) kit.If(value[cli.PID] == m.Option(cli.PID), func() { m.Cmd(cli.DAEMON, cli.STOP, kit.Dict(mdb.HASH, value[mdb.HASH])) })
}) })
m.Cmd(gdb.SIGNAL, gdb.KILL, m.Option(cli.PID)) kit.If(m.Option(cli.PID), func() { m.Cmd(gdb.SIGNAL, gdb.KILL, m.Option(cli.PID)) })
} }
func _install_clear(m *ice.Message, arg ...string) { func _install_clear(m *ice.Message, arg ...string) {
m.Cmd(cli.DAEMON, func(value ice.Maps) { m.Cmd(cli.DAEMON, func(value ice.Maps) {

View File

@ -146,7 +146,7 @@ func init() {
} }
} else { } else {
if m.Length() == 0 { if m.Length() == 0 {
arg[0] = m.Cmdx("", mdb.CREATE, mdb.TYPE, arg) arg[0] = m.Cmdx("", mdb.CREATE, kit.SimpleKV("type,name,text,path", arg))
mdb.HashSelect(m, arg[0]) mdb.HashSelect(m, arg[0])
} }
m.Push(mdb.HASH, arg[0]) m.Push(mdb.HASH, arg[0])

View File

@ -11,6 +11,7 @@ shell `
wget https://github.com/Tencent/TencentKona-8/releases/download/8.0.11-GA/TencentKona8.0.11.b2_jdk_linux-x86_64_8u345.tar.gz wget https://github.com/Tencent/TencentKona-8/releases/download/8.0.11-GA/TencentKona8.0.11.b2_jdk_linux-x86_64_8u345.tar.gz
tar xvf TencentKona8.0.11.b2_jdk_linux-x86_64_8u345.tar.gz && cd TencentKona-8.0.11-345/ tar xvf TencentKona8.0.11.b2_jdk_linux-x86_64_8u345.tar.gz && cd TencentKona-8.0.11-345/
https://repo.huaweicloud.com/java/jdk/8u202-b08/
wget https://mirrors.huaweicloud.com/openjdk/18/openjdk-18_linux-x64_bin.tar.gz wget https://mirrors.huaweicloud.com/openjdk/18/openjdk-18_linux-x64_bin.tar.gz
tar xvf openjdk-18_linux-x64_bin.tar.gz && cd jdk-18 tar xvf openjdk-18_linux-x64_bin.tar.gz && cd jdk-18
` `