forked from x/icebergs
opt module
This commit is contained in:
parent
80df68adf5
commit
8d084c3c2d
@ -165,8 +165,14 @@ func FileURI(dir string) string {
|
||||
}
|
||||
return path.Join(ice.PS, ice.REQUIRE, dir)
|
||||
}
|
||||
func FileCmd(dir string) string { return FileURI(kit.ExtChange(strings.Split(dir, ice.DF)[0], nfs.GO)) }
|
||||
func AddFileCmd(dir, key string) { ice.Info.File[FileCmd(dir)] = key }
|
||||
func FileCmd(dir string) string { return FileURI(kit.ExtChange(strings.Split(dir, ice.DF)[0], nfs.GO)) }
|
||||
func AddFileCmd(dir, key string) {
|
||||
ice.Info.File[FileCmd(dir)] = key
|
||||
ls := strings.SplitN(path.Join(kit.Slice(strings.Split(FileCmd(dir), ice.PS), 2, 5)...), ice.AT, 2)
|
||||
if len(ls) > 1 {
|
||||
ice.Info.Gomod[ls[0]] = ls[1]
|
||||
}
|
||||
}
|
||||
func IsOrderCmd(key string) bool { return key[0] == '/' || key[0] == '_' }
|
||||
func GetFileCmd(dir string) string {
|
||||
if strings.HasPrefix(dir, ice.REQUIRE+ice.PS) {
|
||||
|
@ -11,7 +11,11 @@ import (
|
||||
"shylinux.com/x/toolkits/logs"
|
||||
)
|
||||
|
||||
func Display(m *ice.Message, file string, arg ...ice.Any) *ice.Message {
|
||||
type Message interface {
|
||||
Option(key string, arg ...ice.Any) string
|
||||
}
|
||||
|
||||
func Display(m Message, file string, arg ...ice.Any) Message {
|
||||
if file == "" {
|
||||
file = kit.Keys(kit.FileName(2), nfs.JS)
|
||||
}
|
||||
@ -20,13 +24,13 @@ func Display(m *ice.Message, file string, arg ...ice.Any) *ice.Message {
|
||||
}
|
||||
return DisplayBase(m, file, arg...)
|
||||
}
|
||||
func DisplayTable(m *ice.Message, arg ...ice.Any) *ice.Message {
|
||||
func DisplayTable(m Message, arg ...ice.Any) Message {
|
||||
return DisplayBase(m, "/plugin/table.js", arg...)
|
||||
}
|
||||
func DisplayTableCard(m *ice.Message, arg ...ice.Any) *ice.Message {
|
||||
func DisplayTableCard(m Message, arg ...ice.Any) Message {
|
||||
return DisplayTable(m, "style", "card")
|
||||
}
|
||||
func DisplayStory(m *ice.Message, file string, arg ...ice.Any) *ice.Message {
|
||||
func DisplayStory(m Message, file string, arg ...ice.Any) Message {
|
||||
if file == "" {
|
||||
file = kit.ExtChange(kit.FileName(2), nfs.JS)
|
||||
}
|
||||
@ -35,13 +39,13 @@ func DisplayStory(m *ice.Message, file string, arg ...ice.Any) *ice.Message {
|
||||
}
|
||||
return DisplayBase(m, file, arg...)
|
||||
}
|
||||
func DisplayStoryJSON(m *ice.Message, arg ...ice.Any) *ice.Message {
|
||||
func DisplayStoryJSON(m Message, arg ...ice.Any) Message {
|
||||
return DisplayStory(m, "json", arg...)
|
||||
}
|
||||
func DisplayStorySpide(m *ice.Message, arg ...ice.Any) *ice.Message {
|
||||
return DisplayStory(m, "spide", arg...).StatusTimeCount()
|
||||
func DisplayStorySpide(m Message, arg ...ice.Any) Message {
|
||||
return DisplayStory(m, "spide", arg...)
|
||||
}
|
||||
func DisplayLocal(m *ice.Message, file string, arg ...ice.Any) *ice.Message {
|
||||
func DisplayLocal(m Message, file string, arg ...ice.Any) Message {
|
||||
if file == "" {
|
||||
file = path.Join(kit.PathName(2), kit.Keys(kit.FileName(2), ice.JS))
|
||||
}
|
||||
@ -50,7 +54,7 @@ func DisplayLocal(m *ice.Message, file string, arg ...ice.Any) *ice.Message {
|
||||
}
|
||||
return DisplayBase(m, file, arg...)
|
||||
}
|
||||
func DisplayBase(m *ice.Message, file string, arg ...ice.Any) *ice.Message {
|
||||
func DisplayBase(m Message, file string, arg ...ice.Any) Message {
|
||||
m.Option(ice.MSG_DISPLAY, kit.MergeURL(kit.Select(kit.ExtChange(file, nfs.JS), file, strings.Contains(file, "?")), arg...))
|
||||
return m
|
||||
}
|
||||
|
@ -112,7 +112,7 @@ func init() {
|
||||
}
|
||||
}},
|
||||
mdb.CREATE: {Name: "create name*=hi repos template", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Option(nfs.REPOS, kit.Slice(kit.Split(m.Option(nfs.REPOS)), -1)[0])
|
||||
m.Option(nfs.REPOS, kit.Select("", kit.Slice(kit.Split(m.Option(nfs.REPOS)), -1), 0))
|
||||
_dream_show(m, m.OptionDefault(mdb.NAME, path.Base(m.Option(nfs.REPOS))))
|
||||
}},
|
||||
cli.START: {Hand: func(m *ice.Message, arg ...string) {
|
||||
|
@ -230,10 +230,19 @@ func init() {
|
||||
_share_local(m, ice.USR_PUBLISH, path.Join(arg...))
|
||||
}},
|
||||
PP(ice.REQUIRE): {Name: "/require/shylinux.com/x/volcanos/proto.js", Help: "代码库", Hand: func(m *ice.Message, arg ...string) {
|
||||
p := path.Join(ice.ISH_PLUGED, path.Join(arg...))
|
||||
cache := kit.Select(ice.USR_REQUIRE, m.Cmdx(cli.SYSTEM, "go", "env", "GOMODCACHE"))
|
||||
p := path.Join(cache, path.Join(arg...))
|
||||
if !nfs.ExistsFile(m, p) {
|
||||
m.Cmd(cli.SYSTEM, "git", "clone", "https://"+path.Join(arg[:3]...), path.Join(ice.ISH_PLUGED, path.Join(arg[:3]...)))
|
||||
if p = path.Join(ice.USR_REQUIRE, path.Join(arg...)); !nfs.ExistsFile(m, p) {
|
||||
ls := strings.SplitN(path.Join(arg[:3]...), ice.AT, 2)
|
||||
if v := kit.Select(ice.Info.Gomod[ls[0]], ls, 1); v == "" {
|
||||
m.Cmd(cli.SYSTEM, "git", "clone", "https://"+ls[0], path.Join(ice.USR_REQUIRE, path.Join(arg[:3]...)))
|
||||
} else {
|
||||
m.Cmd(cli.SYSTEM, "git", "clone", "-b", v, "https://"+ls[0], path.Join(ice.USR_REQUIRE, path.Join(arg[:3]...)))
|
||||
}
|
||||
}
|
||||
}
|
||||
m.Debug("what %v", p)
|
||||
m.RenderDownload(p)
|
||||
}},
|
||||
PP(ice.REQUIRE, ice.NODE_MODULES): {Name: "/require/node_modules/", Help: "依赖库", Hand: func(m *ice.Message, arg ...string) {
|
||||
|
@ -164,7 +164,7 @@ const SPACE = "space"
|
||||
|
||||
func init() {
|
||||
Index.MergeCommands(ice.Commands{
|
||||
SPACE: {Name: "space name cmd auto", Help: "空间站", Actions: ice.MergeActions(ice.Actions{
|
||||
SPACE: {Name: "space name cmds auto", Help: "空间站", Actions: ice.MergeActions(ice.Actions{
|
||||
tcp.DIAL: {Name: "dial dev=ops name", Hand: func(m *ice.Message, arg ...string) {
|
||||
if strings.HasPrefix(m.Option(ice.DEV), ice.HTTP) {
|
||||
m.Cmd(SPIDE, mdb.CREATE, ice.DEV, m.Option(ice.DEV))
|
||||
|
1
conf.go
1
conf.go
@ -108,6 +108,7 @@ const ( // DIR
|
||||
USR_INSTALL = "usr/install/"
|
||||
USR_PUBLISH = "usr/publish/"
|
||||
USR_RELEASE = "usr/release/"
|
||||
USR_REQUIRE = "usr/require/"
|
||||
|
||||
USR_LOCAL = "usr/local/"
|
||||
USR_LOCAL_GO = "usr/local/go/"
|
||||
|
@ -9,7 +9,7 @@ import (
|
||||
"strings"
|
||||
|
||||
ice "shylinux.com/x/icebergs"
|
||||
"shylinux.com/x/icebergs/base/ctx"
|
||||
"shylinux.com/x/icebergs/base/cli"
|
||||
"shylinux.com/x/icebergs/base/mdb"
|
||||
"shylinux.com/x/icebergs/base/nfs"
|
||||
kit "shylinux.com/x/toolkits"
|
||||
@ -55,26 +55,28 @@ func _binpack_all(m *ice.Message) {
|
||||
_binpack_file(m, w, ice.README_MD)
|
||||
_binpack_file(m, w, ice.MAKEFILE)
|
||||
_binpack_file(m, w, ice.LICENSE)
|
||||
|
||||
cache := kit.Select(ice.USR_REQUIRE, m.Cmdx(cli.SYSTEM, "go", "env", "GOMODCACHE"))
|
||||
list := map[string]bool{}
|
||||
ctx.TravelCmd(m, func(key, file, line string) {
|
||||
dir := path.Dir(file)
|
||||
if strings.HasPrefix(dir, ice.SRC) {
|
||||
return
|
||||
for k := range ice.Info.File {
|
||||
ls := strings.Split(k, ice.PS)
|
||||
switch ls[2] {
|
||||
case ice.SRC:
|
||||
case ice.USR:
|
||||
list[path.Join(kit.Slice(ls, 2, -1)...)] = true
|
||||
default:
|
||||
list[path.Join(cache, path.Join(kit.Slice(ls, 2, -1)...))] = true
|
||||
}
|
||||
if list[dir] {
|
||||
return
|
||||
}
|
||||
list[dir] = true
|
||||
m.Cmd(nfs.DIR, dir, nfs.PATH, kit.Dict(nfs.DIR_ROOT, nfs.PWD, nfs.DIR_REG, kit.ExtReg("(sh|shy|js)"))).Tables(func(value ice.Maps) {
|
||||
if list[value[nfs.PATH]] {
|
||||
return
|
||||
}
|
||||
for _, p := range kit.SortedKey(list) {
|
||||
m.Cmd(nfs.DIR, p, nfs.PATH, kit.Dict(nfs.DIR_ROOT, nfs.PWD, nfs.DIR_REG, kit.ExtReg("(sh|shy|js)"))).Tables(func(value ice.Maps) {
|
||||
if strings.Contains(value[nfs.PATH], "/go/pkg/mod/") {
|
||||
_binpack_file(m, w, value[nfs.PATH], ice.USR_REQUIRE+strings.Split(value[nfs.PATH], "/go/pkg/mod/")[1])
|
||||
} else {
|
||||
_binpack_file(m, w, value[nfs.PATH])
|
||||
}
|
||||
if list[value[nfs.PATH]] = true; strings.Contains(value[nfs.PATH], "/go/pkg/mod/") {
|
||||
value[nfs.PATH] = "/require/" + strings.Split(value[nfs.PATH], "/go/pkg/mod/")[1]
|
||||
}
|
||||
_binpack_file(m, w, value[nfs.PATH])
|
||||
})
|
||||
})
|
||||
}
|
||||
mdb.HashSelects(m).Sort(nfs.PATH).Tables(func(value ice.Maps) {
|
||||
if s, e := nfs.StatFile(m, value[nfs.PATH]); e == nil {
|
||||
if s.IsDir() {
|
||||
|
@ -61,6 +61,9 @@ func _publish_contexts(m *ice.Message, arg ...string) {
|
||||
m.Option(web.DOMAIN, fmt.Sprintf("%s://%s:%s", u.Scheme, host, kit.Select(kit.Select("443", "80", u.Scheme == ice.HTTP), strings.Split(u.Host, ice.DF), 1)))
|
||||
for _, k := range kit.Default(arg, ice.MISC) {
|
||||
switch k {
|
||||
case INSTALL:
|
||||
m.Echo(kit.Renders(`export ctx_dev={{.Option "domain"}}{{.Option "ctx_env"}}; ctx_temp=$(mktemp); wget -O $ctx_temp -q $ctx_dev; source $ctx_temp app username {{.Option "user.name"}} usernick {{.Option "user.nick"}}`, m))
|
||||
return
|
||||
case ice.MISC:
|
||||
_publish_file(m, ice.ICE_BIN)
|
||||
case ice.CORE:
|
||||
|
Loading…
x
Reference in New Issue
Block a user