mirror of
https://shylinux.com/x/icebergs
synced 2025-04-26 01:24:05 +08:00
opt some
This commit is contained in:
parent
bd5c98ceca
commit
3bd1ab44e5
@ -72,13 +72,15 @@ func _dream_show(m *ice.Message, name string) {
|
||||
|
||||
if m.Richs(SPACE, nil, name, nil) == nil {
|
||||
m.Option(cli.CMD_DIR, p)
|
||||
// m.Conf(cli.RUNTIME, "conf.ctx_dev"),
|
||||
m.Optionv(cli.CMD_ENV, kit.Simple(
|
||||
"ctx_dev", strings.Split(m.Option(ice.MSG_USERWEB), "?")[0],
|
||||
// "ctx_dev", m.Conf(cli.RUNTIME, "conf.ctx_dev"),
|
||||
"ctx_dev", "http://:"+m.Cmd(SERVE).Append(tcp.PORT),
|
||||
"PATH", kit.Path(path.Join(p, "bin"))+":"+kit.Path("bin")+":"+os.Getenv("PATH"),
|
||||
"USER", ice.Info.UserName, m.Confv(DREAM, "meta.env"),
|
||||
))
|
||||
// 启动任务
|
||||
kit.Path(os.Args[0])
|
||||
|
||||
m.Optionv(cli.CMD_STDERR, path.Join(p, m.Conf(DREAM, "meta.env.ctx_log")))
|
||||
m.Cmd(cli.DAEMON, m.Confv(DREAM, "meta.cmd"), SPIDE_DEV, SPIDE_DEV, kit.MDB_NAME, name)
|
||||
m.Event(DREAM_CREATE, kit.MDB_TYPE, m.Option(kit.MDB_TYPE), kit.MDB_NAME, name)
|
||||
|
@ -59,6 +59,9 @@ func _serve_main(m *ice.Message, w http.ResponseWriter, r *http.Request) bool {
|
||||
if r.Method == "GET" && r.URL.Path == "/" {
|
||||
msg := m.Spawn()
|
||||
if msg.W, msg.R = w, r; strings.Contains(r.Header.Get("User-Agent"), "curl") {
|
||||
if ice.DumpBinPack(w, "usr/intshell/index.sh", func(name string) { RenderType(w, name, "") }) {
|
||||
return false
|
||||
}
|
||||
Render(msg, ice.RENDER_DOWNLOAD, kit.Path(m.Conf(SERVE, "meta.intshell.path"), m.Conf(SERVE, "meta.intshell.index")))
|
||||
} else {
|
||||
if ice.DumpBinPack(w, r.URL.Path, func(name string) { RenderType(w, name, "") }) {
|
||||
|
@ -45,7 +45,7 @@ func _pack_dir(m *ice.Message, pack *os.File, dir string) {
|
||||
return
|
||||
}
|
||||
|
||||
pack.WriteString(fmt.Sprintf(" \"/%s\": %s,\n",
|
||||
pack.WriteString(fmt.Sprintf(" \"%s\": %s,\n",
|
||||
path.Join(dir, value[kit.MDB_PATH]), _pack_file(m, path.Join(dir, value[kit.MDB_PATH]))))
|
||||
})
|
||||
pack.WriteString("\n")
|
||||
@ -100,7 +100,7 @@ func init() {
|
||||
_pack_dir(m, pack, "usr/learning")
|
||||
// _pack_dir(m, pack, "usr/icebergs")
|
||||
// _pack_dir(m, pack, "usr/toolkits")
|
||||
// _pack_dir(m, pack, "usr/intshell")
|
||||
_pack_dir(m, pack, "usr/intshell")
|
||||
// _pack_contexts(m, pack)
|
||||
|
||||
_pack_write(pack, ` }`)
|
||||
|
@ -10,6 +10,7 @@ import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path"
|
||||
"runtime"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@ -23,6 +24,9 @@ func _publish_file(m *ice.Message, file string, arg ...string) string {
|
||||
defer func() { os.Remove(p) }()
|
||||
file = p
|
||||
}
|
||||
if strings.HasSuffix(file, "ice.bin") {
|
||||
arg = append(arg, kit.Keys("ice", runtime.GOOS, runtime.GOARCH))
|
||||
}
|
||||
|
||||
// 发布文件
|
||||
target := path.Join(m.Conf(PUBLISH, kit.META_PATH), kit.Select(path.Base(file), arg, 0))
|
||||
@ -36,15 +40,47 @@ func init() {
|
||||
Index.Merge(&ice.Context{
|
||||
Configs: map[string]*ice.Config{
|
||||
PUBLISH: {Name: PUBLISH, Help: "发布", Value: kit.Data(
|
||||
kit.MDB_SHORT, kit.MDB_NAME, kit.MDB_PATH, "usr/publish",
|
||||
"contexts", _contexts,
|
||||
kit.MDB_SHORT, kit.MDB_NAME, kit.MDB_PATH, "usr/publish", "contexts", _contexts,
|
||||
)},
|
||||
},
|
||||
Commands: map[string]*ice.Command{
|
||||
PUBLISH: {Name: "publish path auto create ish ice can", Help: "发布", Action: map[string]*ice.Action{
|
||||
PUBLISH: {Name: "publish path auto create can ice ish", Help: "发布", Action: map[string]*ice.Action{
|
||||
mdb.CREATE: {Name: "create file", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
|
||||
_publish_file(m, m.Option(kit.MDB_FILE))
|
||||
}},
|
||||
"can": {Name: "can", Help: "火山架", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Option(nfs.DIR_DEEP, true)
|
||||
m.Option(nfs.DIR_REG, `.*\.(html|css|js)$`)
|
||||
m.Option(nfs.DIR_ROOT, m.Conf(PUBLISH, kit.META_PATH))
|
||||
m.Cmdy(nfs.DIR, "./", "time,size,line,path,link")
|
||||
m.Cmdy(PUBLISH, "contexts", "miss")
|
||||
}},
|
||||
"ice": {Name: "ice", Help: "冰山架", Hand: func(m *ice.Message, arg ...string) {
|
||||
defer func() { m.Cmdy(PUBLISH, "contexts", "base") }()
|
||||
m.Cmd(PUBLISH, mdb.CREATE, kit.MDB_FILE, "bin/ice.sh")
|
||||
m.Cmd(PUBLISH, mdb.CREATE, kit.MDB_FILE, "bin/ice.bin")
|
||||
|
||||
p := m.Option(cli.CMD_DIR, m.Conf(PUBLISH, kit.META_PATH))
|
||||
ls := strings.Split(strings.TrimSpace(m.Cmd(cli.SYSTEM, "bash", "-c", "ls |xargs file |grep executable").Append(cli.CMD_OUT)), "\n")
|
||||
for _, ls := range ls {
|
||||
if file := strings.TrimSpace(strings.Split(ls, ":")[0]); file != "" {
|
||||
if s, e := os.Stat(path.Join(p, file)); e == nil {
|
||||
m.Push(kit.MDB_TIME, s.ModTime())
|
||||
m.Push(kit.MDB_SIZE, kit.FmtSize(s.Size()))
|
||||
m.Push(kit.MDB_FILE, file)
|
||||
m.PushDownload(file, path.Join(p, file))
|
||||
}
|
||||
}
|
||||
}
|
||||
m.SortTimeR(kit.MDB_TIME)
|
||||
}},
|
||||
"ish": {Name: "ish", Help: "神农架", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Option(nfs.DIR_DEEP, true)
|
||||
m.Option(nfs.DIR_REG, ".*\\.(sh|vim|conf)$")
|
||||
m.Option(nfs.DIR_ROOT, m.Conf(PUBLISH, kit.META_PATH))
|
||||
m.Cmdy(nfs.DIR, "./", "time,size,line,path,link")
|
||||
m.Cmdy(PUBLISH, "contexts", "tmux")
|
||||
}},
|
||||
"contexts": {Name: "contexts", Help: "环境", Hand: func(m *ice.Message, arg ...string) {
|
||||
u := kit.ParseURL(m.Option(ice.MSG_USERWEB))
|
||||
m.Option("httphost", fmt.Sprintf("%s://%s:%s", u.Scheme, strings.Split(u.Host, ":")[0], kit.Select(kit.Select("80", "443", u.Scheme == "https"), strings.Split(u.Host, ":"), 1)))
|
||||
@ -63,44 +99,14 @@ func init() {
|
||||
}
|
||||
}
|
||||
}},
|
||||
"ish": {Name: "ish", Help: "神农架", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Option(nfs.DIR_DEEP, true)
|
||||
m.Option(nfs.DIR_REG, ".*\\.(sh|vim|conf)$")
|
||||
m.Option(nfs.DIR_ROOT, m.Conf(PUBLISH, kit.META_PATH))
|
||||
m.Cmdy(nfs.DIR, "./", "time,size,line,path,link")
|
||||
m.Cmdy(PUBLISH, "contexts", "tmux")
|
||||
}},
|
||||
"ice": {Name: "ice", Help: "冰山架", Hand: func(m *ice.Message, arg ...string) {
|
||||
p := m.Option(cli.CMD_DIR, m.Conf(PUBLISH, kit.META_PATH))
|
||||
ls := strings.Split(m.Cmdx(cli.SYSTEM, "bash", "-c", "ls |xargs file |grep executable"), "\n")
|
||||
for _, ls := range ls {
|
||||
if file := strings.TrimSpace(strings.Split(ls, ":")[0]); file != "" {
|
||||
if s, e := os.Stat(path.Join(p, file)); m.Assert(e) {
|
||||
m.Push(kit.MDB_TIME, s.ModTime())
|
||||
m.Push(kit.MDB_SIZE, kit.FmtSize(s.Size()))
|
||||
m.Push(kit.MDB_FILE, file)
|
||||
m.PushDownload(file, path.Join(p, file))
|
||||
}
|
||||
}
|
||||
}
|
||||
m.SortTimeR(kit.MDB_TIME)
|
||||
m.Cmdy(PUBLISH, "contexts", "base")
|
||||
m.PushAction(mdb.REMOVE)
|
||||
}},
|
||||
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
||||
p := m.Option(cli.CMD_DIR, m.Conf(PUBLISH, kit.META_PATH))
|
||||
os.Remove(path.Join(p, m.Option(kit.MDB_FILE)))
|
||||
}},
|
||||
"can": {Name: "can", Help: "火山架", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Option(nfs.DIR_DEEP, true)
|
||||
m.Option(nfs.DIR_REG, ".*\\.(js|css|html)$")
|
||||
m.Option(nfs.DIR_ROOT, m.Conf(PUBLISH, kit.META_PATH))
|
||||
m.Cmdy(nfs.DIR, "./", "time,size,line,path,link")
|
||||
m.Cmdy(PUBLISH, "contexts", "miss")
|
||||
os.Remove(path.Join(p, m.Option(kit.MDB_PATH)))
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
m.Option(nfs.DIR_ROOT, m.Conf(PUBLISH, kit.META_PATH))
|
||||
m.Cmdy(nfs.DIR, kit.Select("", arg, 0), "time size path link")
|
||||
m.PushAction(mdb.REMOVE)
|
||||
}},
|
||||
},
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user