forked from x/icebergs
opt build.sh
This commit is contained in:
parent
c2c5c1770c
commit
aba7e870ac
@ -2,6 +2,11 @@
|
|||||||
|
|
||||||
icebergs是一个后端框架,通过模块化、集群化实现资源的无限的扩展与自由的组合。
|
icebergs是一个后端框架,通过模块化、集群化实现资源的无限的扩展与自由的组合。
|
||||||
|
|
||||||
|
一键创建项目
|
||||||
|
```
|
||||||
|
curl -s https://raw.githubusercontent.com/shylinux/icebergs/master/demo/build.sh | sh miss
|
||||||
|
```
|
||||||
|
|
||||||
## 1 原型 type.go
|
## 1 原型 type.go
|
||||||
### 1.1 msg.Detail
|
### 1.1 msg.Detail
|
||||||
### 1.2 msg.Option
|
### 1.2 msg.Option
|
||||||
|
2
base.go
2
base.go
@ -125,7 +125,7 @@ func Run(arg ...string) string {
|
|||||||
arg = os.Args[1:]
|
arg = os.Args[1:]
|
||||||
}
|
}
|
||||||
if len(arg) == 0 {
|
if len(arg) == 0 {
|
||||||
arg = append(arg, os.Getenv("ice_serve"))
|
arg = append(arg, WEB_SERVE)
|
||||||
}
|
}
|
||||||
|
|
||||||
frame := &Frame{}
|
frame := &Frame{}
|
||||||
|
@ -74,11 +74,11 @@ var Index = &ice.Context{Name: "gdb", Help: "事件模块",
|
|||||||
"pid": "var/run/shy.pid",
|
"pid": "var/run/shy.pid",
|
||||||
},
|
},
|
||||||
kit.MDB_HASH: map[string]interface{}{
|
kit.MDB_HASH: map[string]interface{}{
|
||||||
"2": []interface{}{"exit"},
|
"2": []interface{}{"exit", "1"},
|
||||||
"3": []interface{}{"exit", "1"},
|
"3": []interface{}{"exit"},
|
||||||
"15": []interface{}{"exit", "1"},
|
"15": []interface{}{"exit"},
|
||||||
"30": []interface{}{"exit"},
|
"30": []interface{}{"exit", "1"},
|
||||||
"31": []interface{}{"exit", "1"},
|
"31": []interface{}{"exit"},
|
||||||
"28": "WINCH",
|
"28": "WINCH",
|
||||||
},
|
},
|
||||||
kit.MDB_LIST: map[string]interface{}{},
|
kit.MDB_LIST: map[string]interface{}{},
|
||||||
|
@ -427,6 +427,9 @@ var Index = &ice.Context{Name: "web", Help: "网页模块",
|
|||||||
"name", m.Conf(ice.CLI_RUNTIME, "boot.hostname"),
|
"name", m.Conf(ice.CLI_RUNTIME, "boot.hostname"),
|
||||||
"user", m.Conf(ice.CLI_RUNTIME, "boot.username"),
|
"user", m.Conf(ice.CLI_RUNTIME, "boot.username"),
|
||||||
))
|
))
|
||||||
|
if _, e := os.Stat("usr/volcanos"); e != nil {
|
||||||
|
m.Cmd("cli.system", "git", "clone", "https://github.com/shylinux/volcanos", "usr/volcanos")
|
||||||
|
}
|
||||||
m.Target().Start(m, kit.Select("self", arg, 0))
|
m.Target().Start(m, kit.Select("self", arg, 0))
|
||||||
}},
|
}},
|
||||||
ice.WEB_SPACE: {Name: "space", Help: "空间站", Meta: kit.Dict("exports", []string{"pod", "name"}), List: kit.List(
|
ice.WEB_SPACE: {Name: "space", Help: "空间站", Meta: kit.Dict("exports", []string{"pod", "name"}), List: kit.List(
|
||||||
@ -953,6 +956,18 @@ var Index = &ice.Context{Name: "web", Help: "网页模块",
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
|
"/static/volcanos/plugin/github.com/": {Name: "/space/", Help: "空间站", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
|
file := strings.TrimPrefix(cmd, "/static/volcanos/")
|
||||||
|
if _, e := os.Stat(path.Join("usr/volcanos", file)); e != nil {
|
||||||
|
m.Cmd("cli.system", "git", "clone", "https://"+strings.Join(strings.Split(cmd, "/")[4:7], "/"),
|
||||||
|
path.Join("usr/volcanos", strings.Join(strings.Split(cmd, "/")[3:7], "/")))
|
||||||
|
}
|
||||||
|
|
||||||
|
m.Push("_output", "void")
|
||||||
|
r := m.Optionv("request").(*http.Request)
|
||||||
|
w := m.Optionv("response").(http.ResponseWriter)
|
||||||
|
http.ServeFile(w, r, path.Join("usr/volcanos", file))
|
||||||
|
}},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,13 +21,15 @@ var Index = &ice.Context{Name: "team", Help: "团队模块",
|
|||||||
},
|
},
|
||||||
Commands: map[string]*ice.Command{
|
Commands: map[string]*ice.Command{
|
||||||
"miss": {Name: "miss", Help: "任务", Meta: map[string]interface{}{
|
"miss": {Name: "miss", Help: "任务", Meta: map[string]interface{}{
|
||||||
"exports": []interface{}{"you", "name"},
|
"display": "github.com/shylinux/context/usr/librarys/code",
|
||||||
"detail": []interface{}{"启动", "停止"},
|
"detail": []interface{}{"启动", "停止"},
|
||||||
|
"exports": []interface{}{"you", "name"},
|
||||||
}, List: kit.List(
|
}, List: kit.List(
|
||||||
kit.MDB_INPUT, "text", "value", "", "name", "name",
|
kit.MDB_INPUT, "text", "value", "", "name", "name",
|
||||||
kit.MDB_INPUT, "text", "value", "", "name", "type",
|
kit.MDB_INPUT, "text", "value", "", "name", "type",
|
||||||
kit.MDB_INPUT, "button", "value", "创建", "action", "auto",
|
kit.MDB_INPUT, "button", "value", "创建", "action", "auto",
|
||||||
), Hand: func(m *ice.Message, c *ice.Context, key string, arg ...string) {
|
), Hand: func(m *ice.Message, c *ice.Context, key string, arg ...string) {
|
||||||
|
return
|
||||||
if len(arg) > 1 {
|
if len(arg) > 1 {
|
||||||
switch arg[1] {
|
switch arg[1] {
|
||||||
case "启动":
|
case "启动":
|
||||||
|
@ -1,3 +1,2 @@
|
|||||||
all:
|
all:
|
||||||
@echo && date
|
go build -o bin/ice.bin main.go && chmod u+x bin/ice.bin && ./load.sh restart
|
||||||
sh build.sh build && sh build.sh restart
|
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
|
|
||||||
export ice_app=${ice_app:="ice.app"}
|
ice_sh=${ice_sh:="ice.sh"}
|
||||||
export ice_err=${ice_err:="boot.log"}
|
|
||||||
export ice_serve=${ice_serve:="web.serve"}
|
|
||||||
export ice_can=${ice_can:="https://github.com/shylinux/volcanos"}
|
|
||||||
|
|
||||||
prepare() {
|
prepare() {
|
||||||
[ -f main.go ] || cat >> main.go <<END
|
[ -f main.go ] || cat >> main.go <<END
|
||||||
@ -23,28 +20,43 @@ END
|
|||||||
|
|
||||||
[ -f go.mod ] || go mod init ${PWD##**/}
|
[ -f go.mod ] || go mod init ${PWD##**/}
|
||||||
|
|
||||||
[ -f Makefile ] || cat >> Makefile <<END
|
[ -f ${ice_sh} ] || cat >> ${ice_sh} <<END
|
||||||
all:
|
#! /bin/sh
|
||||||
sh build.sh build && sh build.sh restart
|
|
||||||
END
|
|
||||||
}
|
|
||||||
build() {
|
|
||||||
prepare && go build -o bin/shy main.go
|
|
||||||
}
|
|
||||||
|
|
||||||
|
export PATH=\${PWD}/bin:\$PATH
|
||||||
|
prepare() {
|
||||||
|
which ice.bin && return
|
||||||
|
curl -s https://shylinux.com/publish/ice.bin -o bin/ice.bin
|
||||||
|
}
|
||||||
start() {
|
start() {
|
||||||
[ -z "$@" ] && ( [ -d usr/volcanos ] || git clone $ice_can usr/volcanos )
|
prepare && while true; do
|
||||||
while true; do
|
date && ice.bin \$@ 2>boot.log && break || echo -e "\n\nrestarting..."
|
||||||
date && $ice_app $@ 2>$ice_err && echo -e "\n\nrestarting..." || break
|
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
restart() {
|
restart() {
|
||||||
kill -2 `cat var/run/shy.pid`
|
kill -2 \`cat var/run/shy.pid\`
|
||||||
}
|
}
|
||||||
shutdown() {
|
shutdown() {
|
||||||
kill -3 `cat var/run/shy.pid`
|
kill -3 \`cat var/run/shy.pid\`
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd=\$1 && shift
|
||||||
|
[ -z "\$cmd" ] && cmd=start
|
||||||
|
\$cmd \$*
|
||||||
|
END
|
||||||
|
chmod u+x ${ice_sh}
|
||||||
|
|
||||||
|
[ -f Makefile ] || cat >> Makefile <<END
|
||||||
|
all:
|
||||||
|
go build -o bin/ice.bin main.go && chmod u+x bin/ice.bin && ./${ice_sh} restart
|
||||||
|
END
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
[ "$1" != "" ] && mdkir $1 && cd $1
|
||||||
|
prepare && go build -o bin/ice.bin main.go && chmod u+x bin/ice.bin && ./${ice_sh}
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd=$1 && shift
|
cmd=$1 && shift
|
||||||
[ -z "$cmd" ] && cmd=start
|
[ -z "$cmd" ] && cmd=build
|
||||||
$cmd $*
|
$cmd $*
|
||||||
|
@ -4,7 +4,7 @@ go 1.13
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/shylinux/icebergs v0.0.0-20191212145348-fe6226481eaa
|
github.com/shylinux/icebergs v0.0.0-20191212145348-fe6226481eaa
|
||||||
github.com/shylinux/toolkits v0.0.0-20191212145555-d32eaba90a9e
|
github.com/shylinux/toolkits v0.0.0-20191225132906-3c11db083b5b
|
||||||
)
|
)
|
||||||
|
|
||||||
replace (
|
replace (
|
||||||
|
6
go.mod
6
go.mod
@ -2,4 +2,8 @@ module github.com/shylinux/icebergs
|
|||||||
|
|
||||||
go 1.13
|
go 1.13
|
||||||
|
|
||||||
require github.com/shylinux/toolkits v0.0.0-20191225132906-3c11db083b5b
|
require (
|
||||||
|
github.com/gomarkdown/markdown v0.0.0-20191207194928-fbea82c4bb03
|
||||||
|
github.com/gorilla/websocket v1.4.1
|
||||||
|
github.com/shylinux/toolkits v0.0.0-20191225132906-3c11db083b5b
|
||||||
|
)
|
||||||
|
5
go.sum
5
go.sum
@ -1,2 +1,7 @@
|
|||||||
|
github.com/gomarkdown/markdown v0.0.0-20191207194928-fbea82c4bb03 h1:m13UZm540+0yrpGOIXd7q4AvPGQPSTo+2jxrBK26o64=
|
||||||
|
github.com/gomarkdown/markdown v0.0.0-20191207194928-fbea82c4bb03/go.mod h1:aii0r/K0ZnHv7G0KF7xy1v0A7s2Ljrb5byB7MO5p6TU=
|
||||||
|
github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM=
|
||||||
|
github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||||
github.com/shylinux/toolkits v0.0.0-20191225132906-3c11db083b5b h1:BXDEMcpHmwuwoqY/NWehDs11GOy2x+2MS7Xfihb3zFY=
|
github.com/shylinux/toolkits v0.0.0-20191225132906-3c11db083b5b h1:BXDEMcpHmwuwoqY/NWehDs11GOy2x+2MS7Xfihb3zFY=
|
||||||
github.com/shylinux/toolkits v0.0.0-20191225132906-3c11db083b5b/go.mod h1:Y68Ot6xOmo1bun67YvqC3chDGeU2gDxtsUnvVDGJm4g=
|
github.com/shylinux/toolkits v0.0.0-20191225132906-3c11db083b5b/go.mod h1:Y68Ot6xOmo1bun67YvqC3chDGeU2gDxtsUnvVDGJm4g=
|
||||||
|
golang.org/dl v0.0.0-20190829154251-82a15e2f2ead/go.mod h1:IUMfjQLJQd4UTqG1Z90tenwKoCX93Gn3MAQJMOSBsDQ=
|
||||||
|
Loading…
x
Reference in New Issue
Block a user