1
0
mirror of https://shylinux.com/x/icebergs synced 2025-04-26 01:24:05 +08:00
This commit is contained in:
shaoying 2020-01-12 18:34:16 +08:00
parent ad51f58034
commit 67e0127be8
13 changed files with 103 additions and 184 deletions

View File

@ -2,67 +2,67 @@
icebergs是一个后端框架通过模块化、集群化实现资源的无限的扩展与自由的组合。
使用icebergs可以将各种模块或项目集成到一起快速开发出集中式的服务器。
- 使用icebergs可以将各种模块或项目集成到一起快速开发出集中式的服务器。
- 使用icebergs可以将各种设备自由的组合在一起快速搭建起分布式的服务器。
使用icebergs可以将各种设备自由的组合在一起快速搭建起分布式的服务器。
所以通过icebergs开发出来的各种模块无需任何多余代码就可以独立运行可以成为系统命令可以远程调用可以成为前端插件可以成为小程序页面。
从而提高代码的复用性与灵活性。
所以通过icebergs开发出来的模块无需任何多余代码就可以独立运行可以成为系统命令可以远程调用可以成为前端插件可以成为小程序页面。
## 1. 项目开发
## 项目开发
开发环境需要安装gitgolang
一键创建项目
```
### 1.1 一键创建项目
*开发环境需要安装git和golang*
```sh
mkdir miss; cd miss && curl -s https://shylinux.com/publish/template.sh | sh
```
运行环境如需前端页面访问服务需要安装git
一键复制项目
```
export ctx_dev=http://127.0.0.1:9020 && curl -s $ctx_dev/publish/ice.sh
### 1.2 一键部署项目
*运行环境如需通过前端页面访问服务则需要安装git*
```sh
export ctx_dev=http://127.0.0.1:9020 && curl -s $ctx_dev/publish/ice.sh | sh
```
*ctx_dev是开发机地址不必是本机地址可以是任意一台先前创建过项目的机器地址。*
## 1 原型 type.go
### 1.1 msg.Detail
### 1.2 msg.Option
### 1.3 msg.Append
### 1.4 msg.Result
### 1.5 msg.Travel
### 1.6 msg.Search
### 1.7 msg.Conf
### 1.8 msg.Cmd
### 1.9 msg.Cap
## 2 原型设计 type.go
### 2.1 msg.Detail
### 2.2 msg.Option
### 2.3 msg.Append
### 2.4 msg.Result
### 2.5 msg.Travel
### 2.6 msg.Search
### 2.7 msg.Conf
### 2.8 msg.Cmd
### 2.9 msg.Cap
## 2 框架 base.go
### 2.1 注册模块 Register
### 2.2 创建资源 Begin
### 2.3 加载配置 _init
### 2.4 启动服务 Start
### 2.5 保存配置 _exit
### 2.6 释放资源 Close
## 3 框架 base.go
### 3.1 注册模块 Register
### 3.2 创建资源 Begin
### 3.3 加载配置 _init
### 3.4 启动服务 Start
### 3.5 保存配置 _exit
### 3.6 释放资源 Close
## 3 基础模块 base/
### 3.1 模块中心 base/ctx
### 3.2 命令中心 base/cli
### 3.3 认证中心 base/aaa
### 3.4 网页中心 base/web
## 4 基础模块 base/
### 4.1 模块中心 base/ctx
### 4.2 命令中心 base/cli
### 4.3 认证中心 base/aaa
### 4.4 网页中心 base/web
### 3.5 词法中心 base/lex
### 3.6 语法中心 base/yac
### 3.7 事件中心 base/gdb
### 3.8 日志中心 base/log
### 4.5 词法中心 base/lex
### 4.6 语法中心 base/yac
### 4.7 事件中心 base/gdb
### 4.8 日志中心 base/log
### 3.9 网络中心 base/tcp
### 3.10 文件中心 base/nfs
### 3.11 终端中心 base/ssh
### 3.12 数据中心 base/mdb
### 4.9 网络中心 base/tcp
### 4.10 文件中心 base/nfs
### 4.11 终端中心 base/ssh
### 4.12 数据中心 base/mdb
## 4 核心模块 core/
### 4.1 编程中心 core/code
### 4.2 文档中心 core/wiki
### 4.3 聊天中心 core/chat
### 4.4 团队中心 core/team
### 4.5 贸易中心 core/mall
## 5 核心模块 core/
### 5.1 编程中心 core/code
### 5.2 文档中心 core/wiki
### 5.3 聊天中心 core/chat
### 5.4 团队中心 core/team
### 5.5 贸易中心 core/mall
## 5 配置 conf.go
### 5.1 环境 init

View File

@ -46,6 +46,13 @@ var Index = &ice.Context{Name: "chat", Help: "聊天中心",
m.Cmd(ice.WEB_FAVOR, "river.root", "field", "total", "cli.git")
m.Cmd(ice.WEB_FAVOR, "river.root", "field", "branch", "cli.git")
m.Cmd(ice.WEB_FAVOR, "river.root", "field", "status", "cli.git")
m.Cmd(ice.WEB_FAVOR, "river.root", "storm", "note")
m.Cmd(ice.WEB_FAVOR, "river.root", "field", "total", "cli.git")
m.Cmd(ice.WEB_FAVOR, "river.root", "field", "date", "web.team")
m.Cmd(ice.WEB_FAVOR, "river.root", "field", "miss", "web.team")
m.Cmd(ice.WEB_FAVOR, "river.root", "field", "progress", "web.team")
m.Cmd(ice.WEB_FAVOR, "river.root", "field", "note", "web.wiki")
}
// 用户权限

View File

@ -119,10 +119,7 @@ var Index = &ice.Context{Name: "team", Help: "团队中心",
}
}
}},
"stat": {Name: "stat", Help: "统计", Meta: kit.Dict(
"display", "demo.wasm",
// "display", "github.com/shylinux/icebergs/core/team/stat",
), Hand: func(m *ice.Message, c *ice.Context, key string, arg ...string) {
"stat": {Name: "stat", Help: "统计", Meta: kit.Dict(), Hand: func(m *ice.Message, c *ice.Context, key string, arg ...string) {
hot := kit.Select(ice.FAVOR_MISS, m.Option("hot"))
stat := map[string]int{}
m.Option("cache.limit", "1000")
@ -136,8 +133,7 @@ var Index = &ice.Context{Name: "team", Help: "团队中心",
}
}},
"progress": {Name: "progress", Help: "进度", Meta: kit.Dict(
"remote", "you",
"display", "github.com/shylinux/icebergs/core/team/miss",
"remote", "you", "display", "team/miss",
"detail", []string{"回退", "前进", "取消", "完成"},
), List: kit.List(
kit.MDB_INPUT, "text", "value", "",

View File

@ -1,6 +1,7 @@
package wiki
import (
"github.com/gomarkdown/markdown"
"github.com/shylinux/icebergs"
_ "github.com/shylinux/icebergs/base"
"github.com/shylinux/icebergs/base/web"
@ -195,7 +196,11 @@ var Index = &ice.Context{Name: "wiki", Help: "文档中心",
}
// 生成网页
m.Echo(string(buffer.Bytes()))
data := buffer.Bytes()
if strings.HasSuffix(arg[0], ".md") {
data = markdown.ToHTML(buffer.Bytes(), nil, nil)
}
m.Echo(string(data))
}},
"_tree": {Name: "_tree path", Help: "文库", Hand: func(m *ice.Message, c *ice.Context, key string, arg ...string) {
m.Option("dir_deep", "true")
@ -203,7 +208,7 @@ var Index = &ice.Context{Name: "wiki", Help: "文档中心",
m.Cmdy("nfs.dir", kit.Select(m.Conf("note", "meta.path"), arg, 0), m.Conf("note", "meta.head"))
}},
"note": {Name: "note file", Help: "笔记", Meta: kit.Dict("remote", "you", "display", "inner"), List: kit.List(
kit.MDB_INPUT, "text", "name", "path", "value", "miss.md",
kit.MDB_INPUT, "text", "name", "path", "value", "README.md",
kit.MDB_INPUT, "button", "name", "执行", "action", "auto",
kit.MDB_INPUT, "button", "name", "返回", "cb", "Last",
), Hand: func(m *ice.Message, c *ice.Context, key string, arg ...string) {

1
go.mod
View File

@ -3,6 +3,7 @@ module github.com/shylinux/icebergs
go 1.13
require (
github.com/gomarkdown/markdown v0.0.0-20200112043221-ec51d717629d
github.com/gorilla/websocket v1.4.1
github.com/shylinux/toolkits v0.1.0
github.com/skip2/go-qrcode v0.0.0-20191027152451-9434209cb086

3
go.sum
View File

@ -1,6 +1,9 @@
github.com/gomarkdown/markdown v0.0.0-20200112043221-ec51d717629d h1:Qw3Ku+gg4x3gfv71ayr0SbjJYWpWD10XoS9JbtFgvbg=
github.com/gomarkdown/markdown v0.0.0-20200112043221-ec51d717629d/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.1.0 h1:7ghnVEjuwLf7zBsyeR37ahm2gaOKIyjSw9F9Pp9oTBU=
github.com/shylinux/toolkits v0.1.0/go.mod h1:Y68Ot6xOmo1bun67YvqC3chDGeU2gDxtsUnvVDGJm4g=
github.com/skip2/go-qrcode v0.0.0-20191027152451-9434209cb086 h1:RYiqpb2ii2Z6J4x0wxK46kvPBbFuZcdhS+CIztmYgZs=
github.com/skip2/go-qrcode v0.0.0-20191027152451-9434209cb086/go.mod h1:PLPIyL7ikehBD1OAjmKKiOEhbvWyHGaNDjquXMcYABo=
golang.org/dl v0.0.0-20190829154251-82a15e2f2ead/go.mod h1:IUMfjQLJQd4UTqG1Z90tenwKoCX93Gn3MAQJMOSBsDQ=

View File

@ -1,3 +1,4 @@
all:
@echo && date
export GOPRIVATE=github.com
go build -o bin/ice.bin src/main.go && chmod u+x bin/ice.bin && ./bin/ice.sh restart

View File

@ -1,125 +0,0 @@
{{title "ICEBERGS"}}
{{brief `icebergs是一个后端框架通过模块化、集群化实现资源的无限的扩展与自由的组合。`}}
{{chain "icebergs" `
icebergs
type.go
msg.Detail
msg.Option
msg.Append
msg.Result
msg.Travel
msg.Search
msg.Conf
msg.Cmd
msg.Cap
base.go bg blue
Begin
_init
Start bg red
code
wiki
chat
ocean
river
action
storm
steam
team
mall
_exit
Close
conf.go
init
host
boot
node
user
work
auth
data
file
` "" "" 16}}
{{shell "一键创建项目" "usr" "install" `mkdir miss; cd miss && curl -s https://shylinux.com/publish/build.sh | sh`}}
{{shell "一键启动项目" "usr" "install" `mkdir miss; cd miss && curl -s https://shylinux.com/publish/ice.sh | sh`}}
{{chapter "配置模块 base/ctx"}}
{{chapter "命令模块 base/cli"}}
cli模块用于与系统进行交互。
{{order "命令" `
系统信息 ice.CLI_RUNTIME
系统命令 ice.CLI_SYSTEM
`}}
{{chapter "通信模块 base/tcp"}}
tcp模块用于管理网络的读写
{{chapter "存储模块 base/nfs"}}
nfs模块用于管理文件的读写。
{{chapter "终端模块 base/ssh"}}
ssh模块用于与终端交互。
{{chapter "数据模块 base/mdb"}}
mdb模块用于管理数据的读写。
{{chapter "词法模块 base/lex"}}
{{chapter "语法模块 base/yac"}}
{{chapter "日志模块 base/log"}}
log模块负责输出日志。
{{chapter "事件模块 base/gdb"}}
gdb模块会根据各种触发条件择机执行各种命令。
{{order "命令" `
信号器 ice.SIGNAL
定时器 ice.TIMER
触发器 ice.EVENT
`}}
{{chapter "认证模块 base/aaa"}}
aaa模块用于各种权限管理与身份认证。
{{order "命令" `
角色 ice.AAA_ROLE
用户 ice.AAA_USER
会话 ice.AAA_SESS
`}}
{{chapter "网络模块 base/web"}}
web模块用于组织网络节点与生成前端网页
{{section "网络爬虫 ice.WEB_SPIDE"}}
WEB_SPIDE功能用于发送网络请求获取相关数据。
{{section "网络服务 ice.WEB_SERVE"}}
WEB_SERVE功能用于启动网络服务器接收网络请求。
{{section "网络节点 ice.WEB_SPACE"}}
WEB_SPACE功能用于与相连网络节点进行通信。
{{section "网络任务 ice.WEB_DREAM"}}
WEB_DREAM功能用于启动本地节点管理各种任务的相关资源。
{{section "网络收藏 ice.WEB_FAVOR"}}
WEB_FAVOR功能用于收藏各种实时数据进行分类管理。
{{section "网络缓存 ice.WEB_CACHE"}}
WEB_CACHE功能用于管理缓存数据自动存储与传输。
{{section "网络存储 ice.WEB_STORY"}}
WEB_STORY功能用于记录数据的历史变化可以查看任意历史版本。
{{section "网络共享 ice.WEB_SHARE"}}
WEB_SHARE功能用于数据与应用的共享可以查到所有数据流通记录。
{{section "网络路由 ice.WEB_ROUTE"}}
{{section "网络代理 ice.WEB_PROXY"}}
{{section "网络分组 ice.WEB_GROUP"}}
{{section "网络标签 ice.WEB_LABEL"}}

1
miss/README.md Symbolic link
View File

@ -0,0 +1 @@
../README.md

10
miss/go.mod Normal file
View File

@ -0,0 +1,10 @@
module miss
go 1.13
require github.com/shylinux/icebergs v0.1.9 // indirect
replace (
github.com/shylinux/icebergs => ../
github.com/shylinux/toolkits => ../../toolkits
)

7
miss/go.sum Normal file
View File

@ -0,0 +1,7 @@
github.com/gomarkdown/markdown v0.0.0-20200112043221-ec51d717629d h1:Qw3Ku+gg4x3gfv71ayr0SbjJYWpWD10XoS9JbtFgvbg=
github.com/gomarkdown/markdown v0.0.0-20200112043221-ec51d717629d/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/skip2/go-qrcode v0.0.0-20191027152451-9434209cb086 h1:RYiqpb2ii2Z6J4x0wxK46kvPBbFuZcdhS+CIztmYgZs=
github.com/skip2/go-qrcode v0.0.0-20191027152451-9434209cb086/go.mod h1:PLPIyL7ikehBD1OAjmKKiOEhbvWyHGaNDjquXMcYABo=
golang.org/dl v0.0.0-20190829154251-82a15e2f2ead/go.mod h1:IUMfjQLJQd4UTqG1Z90tenwKoCX93Gn3MAQJMOSBsDQ=

12
miss/src/main.go Normal file
View File

@ -0,0 +1,12 @@
package main
import (
"github.com/shylinux/icebergs"
_ "github.com/shylinux/icebergs/base"
_ "github.com/shylinux/icebergs/core"
_ "github.com/shylinux/icebergs/misc"
)
func main() {
println(ice.Run())
}

1
miss/usr/volcanos Symbolic link
View File

@ -0,0 +1 @@
../../../volcanos

View File

@ -29,7 +29,7 @@ func main() {
}
END
[ -f src/go.mod ] || cd src && go mod init ${ice_mod} && cd ..
[ -f go.mod ] || go mod init ${ice_mod}
[ -f Makefile ] || cat >> Makefile <<END
all:
@ -94,7 +94,7 @@ END
build() {
export GOPRIVATE=github.com
miss=./ && [ "$1" != "" ] && miss=$1 && shift && mkdir $miss
cd $miss && prepare && cd src && go build -o ../${ice_bin} ../${main_go} && cd .. && chmod u+x ${ice_bin} && ./${ice_sh} start serve dev
cd $miss && prepare && go build -o ${ice_bin} ${main_go} && chmod u+x ${ice_bin} && ./${ice_sh} start serve dev
}
tutor() {