mirror of
https://shylinux.com/x/ContextOS
synced 2025-04-25 08:48:06 +08:00
opt document
This commit is contained in:
parent
7df9779939
commit
5a7cd859ad
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,4 @@
|
|||||||
|
src/binpack_usr.go
|
||||||
src/binpack.go
|
src/binpack.go
|
||||||
src/version.go
|
src/version.go
|
||||||
etc/local.shy
|
etc/local.shy
|
||||||
|
@ -11,18 +11,18 @@ ish_miss_prepare_project
|
|||||||
|
|
||||||
ish_miss_prepare_contexts
|
ish_miss_prepare_contexts
|
||||||
ish_miss_prepare_intshell
|
ish_miss_prepare_intshell
|
||||||
ish_miss_prepare_learning
|
|
||||||
ish_miss_prepare_volcanos
|
ish_miss_prepare_volcanos
|
||||||
|
ish_miss_prepare_learning
|
||||||
ish_miss_prepare_toolkits
|
ish_miss_prepare_toolkits
|
||||||
ish_miss_prepare_icebergs
|
ish_miss_prepare_icebergs
|
||||||
ish_miss_prepare_release
|
ish_miss_prepare_release
|
||||||
|
ish_miss_prepare icons
|
||||||
ish_miss_prepare program
|
ish_miss_prepare program
|
||||||
ish_miss_prepare geoarea
|
ish_miss_prepare geoarea
|
||||||
ish_miss_prepare icons
|
ish_miss_prepare node_modules
|
||||||
|
|
||||||
ish_miss_prepare go-git
|
ish_miss_prepare go-git
|
||||||
ish_miss_prepare go-qrcode
|
ish_miss_prepare go-qrcode
|
||||||
ish_miss_prepare websocket
|
ish_miss_prepare websocket
|
||||||
ish_miss_prepare node_modules
|
|
||||||
|
|
||||||
ish_miss_make; [ -z "$*" ] || ish_miss_serve "$@"
|
ish_miss_make; [ -z "$*" ] || ish_miss_serve "$@"
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
title "user"
|
|
||||||
brief `user 命令,用户管理。`
|
|
||||||
|
|
||||||
chapter "界面"
|
|
||||||
spark demo user
|
|
||||||
|
|
||||||
chapter "参数"
|
|
||||||
spark `没有参数时,输出用户列表。指定了参数 username,则输出此用户的详情信息。`
|
|
||||||
order `username: 用户名。`
|
|
||||||
|
|
||||||
chapter "操作"
|
|
||||||
order `
|
|
||||||
create: 创建一个用户。
|
|
||||||
remove: 删除一个用户。
|
|
||||||
`
|
|
||||||
section "create"
|
|
||||||
spark `create 创建一个新的用户需要以下参数,其中 username 是必选,其它的都是可选。`
|
|
||||||
order `
|
|
||||||
usernick: 用户昵称
|
|
||||||
username: 用户名
|
|
||||||
userrole: 用户角色
|
|
||||||
userzone: 用户领域
|
|
||||||
background: 背景图片
|
|
||||||
`
|
|
@ -1,17 +0,0 @@
|
|||||||
title "daemon"
|
|
||||||
spark `daemon 命令,启动后台进程。`
|
|
||||||
|
|
||||||
chapter "界面"
|
|
||||||
spark demo daemon
|
|
||||||
|
|
||||||
chapter "参数"
|
|
||||||
spark `没有参数时,daemon 输出已经启动的后台进程列表。`
|
|
||||||
|
|
||||||
chapter "操作"
|
|
||||||
order `
|
|
||||||
prunes,从进程列表中,清理已经结束的或启动异常的进程信息。
|
|
||||||
remove,从进程列表中,删除进程信息。
|
|
||||||
stop,结束某个后台进程。
|
|
||||||
restart,重启某个后台进程。
|
|
||||||
`
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
|||||||
title "system"
|
|
||||||
spark `system 命令,执行系统命令。`
|
|
||||||
|
|
||||||
chapter "界面"
|
|
||||||
spark demo system
|
|
||||||
|
|
||||||
chapter "参数"
|
|
||||||
spark `system 需要一个参数 cmd,来指定需要执行的系统命令。`
|
|
||||||
order `
|
|
||||||
cmd: 指定命令。
|
|
||||||
`
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
|||||||
title "command"
|
|
||||||
spark `command 命令,输出 Contexts 的命令列表或命令详情。`
|
|
||||||
|
|
||||||
chapter "界面"
|
|
||||||
spark `使用树状图,来展示命令列表。`
|
|
||||||
spark demo command
|
|
||||||
|
|
||||||
chapter "参数"
|
|
||||||
spark `没有参数时,输出命令列表。指定了参数 key 即命令名,则输出此命令的详细信息。`
|
|
||||||
order `
|
|
||||||
key: 命令名
|
|
||||||
`
|
|
@ -1,17 +0,0 @@
|
|||||||
title "config"
|
|
||||||
spark `config 命令,输出配置列表或配置详情。`
|
|
||||||
|
|
||||||
chapter "界面"
|
|
||||||
spark demo config
|
|
||||||
|
|
||||||
chapter "参数"
|
|
||||||
spark `没有参数时,输出当前模块的所有配置列表。指定了参数 key 即配置名,则输出此配置的详细信息。`
|
|
||||||
order `
|
|
||||||
key: 配置名
|
|
||||||
`
|
|
||||||
|
|
||||||
chapter "操作"
|
|
||||||
order `
|
|
||||||
export,导出指定命令的配置,到指定的目录中。
|
|
||||||
import,导入指定命令的配置,从指定的目录。
|
|
||||||
trash,清理指定命令的配置。`
|
|
@ -1,14 +0,0 @@
|
|||||||
title "cat"
|
|
||||||
brief `cat 命令,是文件管理器。`
|
|
||||||
|
|
||||||
chapter "界面"
|
|
||||||
spark demo cat
|
|
||||||
|
|
||||||
chapter "参数"
|
|
||||||
spark `没有参数或参数 path 为 / 结尾,则输出此目录下的文件列表。当参数 path 为一个文件路径时,则输出此文件内容。`
|
|
||||||
order `path: 目录路径或文件路径。`
|
|
||||||
|
|
||||||
chapter "操作"
|
|
||||||
order `
|
|
||||||
trash: 清理文件。
|
|
||||||
`
|
|
@ -1,15 +0,0 @@
|
|||||||
title "dir"
|
|
||||||
brief `dir 命令,是目录管理器。`
|
|
||||||
|
|
||||||
chapter "界面"
|
|
||||||
spark demo dir
|
|
||||||
|
|
||||||
chapter "参数"
|
|
||||||
spark `输出指定路径下的文件列表。`
|
|
||||||
order `path: 目录路径或文件路径。`
|
|
||||||
|
|
||||||
chapter "操作"
|
|
||||||
order `
|
|
||||||
upload: 上传文件。
|
|
||||||
trash: 清理文件。
|
|
||||||
`
|
|
@ -1,9 +0,0 @@
|
|||||||
title "host"
|
|
||||||
brief `host 命令,查看网卡信息。`
|
|
||||||
|
|
||||||
chapter "界面"
|
|
||||||
spark demo host
|
|
||||||
|
|
||||||
chapter "参数"
|
|
||||||
spark `没有参数时,输出网卡列表。指定了参数 name,则只输出此网卡的信息`
|
|
||||||
order `name: 网卡名。`
|
|
@ -1,13 +0,0 @@
|
|||||||
title "dream"
|
|
||||||
spark `dream 命令,工作空间管理。`
|
|
||||||
|
|
||||||
chapter "界面"
|
|
||||||
spark demo dream
|
|
||||||
|
|
||||||
chapter "参数"
|
|
||||||
|
|
||||||
chapter "操作"
|
|
||||||
|
|
||||||
chapter "监听事件"
|
|
||||||
|
|
||||||
chapter "配置"
|
|
@ -1,28 +0,0 @@
|
|||||||
title "serve"
|
|
||||||
spark `serve 命令,启动 web 服务器。`
|
|
||||||
|
|
||||||
chapter "界面"
|
|
||||||
spark demo serve
|
|
||||||
|
|
||||||
chapter "参数"
|
|
||||||
spark `没有参数时,输出服务列表。指定了参数 name 即服务名,则输出此服务的详细信息。`
|
|
||||||
order `
|
|
||||||
name: 服务名
|
|
||||||
`
|
|
||||||
|
|
||||||
chapter "操作"
|
|
||||||
order `
|
|
||||||
start: 启动一个 web 服务。
|
|
||||||
remove: 删除一个 web 服务。
|
|
||||||
`
|
|
||||||
|
|
||||||
chapter "监听事件"
|
|
||||||
order `
|
|
||||||
serve.start: 服务启动后,在终端输出服务地址的二维码。
|
|
||||||
`
|
|
||||||
|
|
||||||
chapter "配置"
|
|
||||||
section "domain"
|
|
||||||
spark `指定服务的域名。`
|
|
||||||
shell `serve domain ""`
|
|
||||||
shell `serve domain "https://shylinux.com"`
|
|
@ -1,57 +0,0 @@
|
|||||||
title "space"
|
|
||||||
brief `space 命令,执行远程命令。`
|
|
||||||
|
|
||||||
chapter "界面"
|
|
||||||
spark demo space
|
|
||||||
|
|
||||||
chapter "参数"
|
|
||||||
spark `没有参数时,输出节点列表。指定了参数 name 即节点名,则输出此节点的详细信息。如果还指定了参数 cmds,则将 cmds 参数指定的命令,发送到 name 参数指定节点上去执行。`
|
|
||||||
order `
|
|
||||||
name: 空间名。
|
|
||||||
cmds: 命令。
|
|
||||||
`
|
|
||||||
|
|
||||||
chapter "操作"
|
|
||||||
order `
|
|
||||||
open,打开一个节点的首页。
|
|
||||||
remove,删除一个节点。
|
|
||||||
`
|
|
||||||
chapter "搜索"
|
|
||||||
spark `默认结果,输出子服务节点,父节点。`
|
|
||||||
|
|
||||||
chapter "接口"
|
|
||||||
section "/space/"
|
|
||||||
spark `监听子空间或子设备,发送的 websocket 连接请求,并创建新的双向连接。`
|
|
||||||
|
|
||||||
chapter "命令"
|
|
||||||
section "dial"
|
|
||||||
spark `启动工作空间`
|
|
||||||
shell `space dial dev dev name demo`
|
|
||||||
order `
|
|
||||||
dev: 指定远程服务地址。
|
|
||||||
name: 指定本节点的名称。
|
|
||||||
`
|
|
||||||
|
|
||||||
section "start"
|
|
||||||
spark `启动工作空间`
|
|
||||||
shell `space start dev dev name demo`
|
|
||||||
order `
|
|
||||||
dev: 指定远程服务地址。
|
|
||||||
name: 指定本节点的名称。
|
|
||||||
`
|
|
||||||
|
|
||||||
section "login"
|
|
||||||
spark `授权登录。`
|
|
||||||
shell `space login 113_87_49_222_52203`
|
|
||||||
|
|
||||||
section "domain"
|
|
||||||
spark `返回当前空间的地址。`
|
|
||||||
shell `space domain`
|
|
||||||
|
|
||||||
section "main"
|
|
||||||
spark `返回空间的首页。`
|
|
||||||
shell `space main`
|
|
||||||
|
|
||||||
chapter "配置"
|
|
||||||
order `main: 通过 config 命令指定空间的首页`
|
|
||||||
shell `config web.space meta.main "desktop"`
|
|
@ -1,32 +0,0 @@
|
|||||||
title "compile"
|
|
||||||
brief `compile 命令,编译工具。`
|
|
||||||
|
|
||||||
chapter "界面"
|
|
||||||
spark demo compile
|
|
||||||
|
|
||||||
chapter "参数"
|
|
||||||
order `
|
|
||||||
arch: CPU 类型。
|
|
||||||
os: 操作系统类型。
|
|
||||||
src: 源码文件。
|
|
||||||
`
|
|
||||||
|
|
||||||
chapter "操作"
|
|
||||||
section "run"
|
|
||||||
spark `将参数 src 指定的源码文件,编译成 os 和 arch 参数指定的类型。`
|
|
||||||
|
|
||||||
section "binpack"
|
|
||||||
spark `将所有资源打包进 binpack.go 文件中。`
|
|
||||||
|
|
||||||
section "webpack"
|
|
||||||
spark `将前端所有代码打包到一个文件中。`
|
|
||||||
|
|
||||||
section "devpack"
|
|
||||||
spark `删除前端的打包文件。`
|
|
||||||
|
|
||||||
section "install"
|
|
||||||
spark `安装编译器。`
|
|
||||||
|
|
||||||
chapter "配置"
|
|
||||||
section "env"
|
|
||||||
spark `指定编译时的环境变量。`
|
|
@ -1,14 +0,0 @@
|
|||||||
title "publish"
|
|
||||||
brief `publish 命令,发布工具。
|
|
||||||
将编译好的程序文件或其它资源文件对外发布,供自由的下载。`
|
|
||||||
spark `在工具界面的工作区,默认的会生成一个下载命令,复制此命令,在终端执行,即可从本服务器,快速下载程序文件启动服务,并且连接到本服务器,成为本服务器的子设备。`
|
|
||||||
|
|
||||||
chapter "界面"
|
|
||||||
spark demo publish
|
|
||||||
|
|
||||||
chapter "参数"
|
|
||||||
spark `没有参数 path 时,会显示资源列表。否则会显示参数 path 指定文件的详细信息。`
|
|
||||||
order `path: 文件路径。`
|
|
||||||
|
|
||||||
chapter "目录"
|
|
||||||
spark `发布出去的文件,都保存在 ./usr/publish/ 目录下。`
|
|
@ -1,13 +0,0 @@
|
|||||||
title "word"
|
|
||||||
brief `word 命令,笔记文档。`
|
|
||||||
|
|
||||||
chapter "界面"
|
|
||||||
spark demo word
|
|
||||||
|
|
||||||
chapter "参数"
|
|
||||||
spark `没有参数 path 时,会显示所有的文档列表。否则会显示参数 path 指定文档的内容。`
|
|
||||||
order `path: 文件路径。`
|
|
||||||
|
|
||||||
chapter "操作"
|
|
||||||
section "play"
|
|
||||||
spark `word 命令,还支持文档演示。像 PPT 一样,将笔记文档,按章节一页一页的展示。`
|
|
@ -1,43 +0,0 @@
|
|||||||
navmenu `
|
|
||||||
基础模块 base/
|
|
||||||
aaa aaa/
|
|
||||||
user user.shy
|
|
||||||
cli cli/
|
|
||||||
daemon daemon.shy
|
|
||||||
system system.shy
|
|
||||||
ctx ctx/
|
|
||||||
command command.shy
|
|
||||||
config config.shy
|
|
||||||
nfs nfs/
|
|
||||||
cat cat.shy
|
|
||||||
dir dir.shy
|
|
||||||
tcp tcp/
|
|
||||||
host host.shy
|
|
||||||
web web/
|
|
||||||
space space.shy
|
|
||||||
dream dream.shy
|
|
||||||
serve serve.shy
|
|
||||||
space space.shy
|
|
||||||
核心模块 core/
|
|
||||||
amap usr/icebergs/core/chat/location/amap.shy
|
|
||||||
bmap usr/icebergs/core/chat/location/bmap.shy
|
|
||||||
location usr/icebergs/core/chat/location/location.shy
|
|
||||||
tmap usr/icebergs/core/chat/location/tmap.shy
|
|
||||||
code code/
|
|
||||||
compile compile.shy
|
|
||||||
publish publish.shy
|
|
||||||
xterm usr/icebergs/core/code/xterm.shy
|
|
||||||
wiki wiki/
|
|
||||||
geoarea usr/icebergs/core/wiki/geoarea.shy
|
|
||||||
geoarea usr/icebergs/core/wiki/geoarea.shy
|
|
||||||
word word.shy
|
|
||||||
其它模块 misc/
|
|
||||||
wx.ide usr/icebergs/misc/wx/ide.shy
|
|
||||||
chrome.chrome usr/icebergs/misc/chrome/chrome.shy
|
|
||||||
java.java usr/icebergs/misc/java/java.shy
|
|
||||||
java.spring usr/icebergs/misc/java/spring.shy
|
|
||||||
node.node usr/icebergs/misc/node/node.shy
|
|
||||||
node.npm usr/icebergs/misc/node/npm.shy
|
|
||||||
node.vue usr/icebergs/misc/node/vue.shy
|
|
||||||
disk.client usr/icebergs/misc/disk/client.shy
|
|
||||||
`
|
|
@ -1,21 +0,0 @@
|
|||||||
title "web.code.tmux.buffer"
|
|
||||||
brief `web.code.tmux.buffer 命令,tmux 缓存管理。`
|
|
||||||
|
|
||||||
chapter "界面"
|
|
||||||
spark demo web.code.tmux.buffer
|
|
||||||
|
|
||||||
chapter "参数"
|
|
||||||
spark `没有参数 name 时,会显示缓存列表。没有参数 value 时,会显示缓存详情,否则设置缓存内容。`
|
|
||||||
order `
|
|
||||||
name: 缓存名。
|
|
||||||
value: 缓存值。
|
|
||||||
`
|
|
||||||
|
|
||||||
chapter "操作"
|
|
||||||
section "create"
|
|
||||||
spark `添加缓存`
|
|
||||||
order `
|
|
||||||
value: 缓存值。
|
|
||||||
`
|
|
||||||
section "remove"
|
|
||||||
spark `删除缓存`
|
|
@ -1,35 +0,0 @@
|
|||||||
title "web.code.tmux.session"
|
|
||||||
brief `web.code.tmux.session 命令,tmux 会话管理。`
|
|
||||||
|
|
||||||
chapter "界面"
|
|
||||||
spark demo web.code.tmux.session
|
|
||||||
|
|
||||||
chapter "参数"
|
|
||||||
spark `没有参数 session 时,会显示会话列表。没有参数 window 时,会显示窗口列表。没有参数 pane 时,会显示面板列表。没有参数 cmds 会显示面板内容,否则会执行命令。`
|
|
||||||
order `
|
|
||||||
session: 会话名。
|
|
||||||
window: 窗口名。
|
|
||||||
pane: 面板名。
|
|
||||||
cmds: 命令名。
|
|
||||||
`
|
|
||||||
|
|
||||||
chapter "操作"
|
|
||||||
|
|
||||||
section "create"
|
|
||||||
spark `在显示会话列表时,创建会话。`
|
|
||||||
spark `在显示窗口列表时,创建窗口。`
|
|
||||||
spark `在显示面板列表时,创建面板。`
|
|
||||||
|
|
||||||
section "remove"
|
|
||||||
spark `在显示会话列表时,删除会话。`
|
|
||||||
spark `在显示窗口列表时,删除窗口。`
|
|
||||||
spark `在显示面板列表时,删除面板。`
|
|
||||||
|
|
||||||
section "select"
|
|
||||||
spark `在显示会话列表时,将选中的会话置为当前会话。`
|
|
||||||
spark `在显示窗口列表时,将选中的窗口置为当前窗口。`
|
|
||||||
spark `在显示面板列表时,将选中的面板置为当前面板。`
|
|
||||||
|
|
||||||
chapter "监听事件"
|
|
||||||
section "dream.create"
|
|
||||||
spark `空间创建成功后,会创建一个与空间同名的 tmux 会话。`
|
|
@ -1,2 +0,0 @@
|
|||||||
spark `shy@shylinux.com`
|
|
||||||
|
|
@ -1,57 +0,0 @@
|
|||||||
style flex
|
|
||||||
style column
|
|
||||||
title "{{ .Make.Remote | Base | Capital }}"
|
|
||||||
spark title "一个功能完备的工具系统"
|
|
||||||
order `
|
|
||||||
将编辑器、命令行、数据库、编译器等几百种工具,以模块化的方式,高度集成到一个 16M 的程序文件中。
|
|
||||||
一键部署到各种机器上,快速启动很多个工作空间,以集群化的方式,将这些空间、设备高度组织到一起。
|
|
||||||
每个工具都有网页界面,以自己的数据逻辑将其它所有的工具与空间,组织到自己的界面中,高效的完成各种工作。
|
|
||||||
`
|
|
||||||
style flex
|
|
||||||
spark button "体 验" route "https://demo.shylinux.com" bg blue fg white
|
|
||||||
spark button "下 载" route "download/" bg blue fg white
|
|
||||||
spark button "文 档" route "started/" bg blue fg white
|
|
||||||
style end
|
|
||||||
style end
|
|
||||||
style column flex "0 0 500px" overflow hidden padding 10px
|
|
||||||
spark inner src/main.go width 480px
|
|
||||||
shell `
|
|
||||||
git clone {{ .Make.Remote }}
|
|
||||||
cd {{ .Make.Remote | Base }} && source etc/miss.sh
|
|
||||||
|
|
||||||
./bin/ice.bin
|
|
||||||
|
|
||||||
open http://localhost:9020
|
|
||||||
` style.width 480px
|
|
||||||
style
|
|
||||||
style end
|
|
||||||
|
|
||||||
spark title "工作空间"
|
|
||||||
spark `比虚拟机和容器,更加轻量,每个空间都是一个完整的系统,拥有各种软件与环境。
|
|
||||||
将软件、配置、数据以源码库形式保存,可以保存备份,可以快速分享与传播,可以随时二次开发,可以直接编译启动。
|
|
||||||
`
|
|
||||||
field "工作空间" web.dream
|
|
||||||
|
|
||||||
spark title "电脑桌面"
|
|
||||||
spark `一款网页版的电脑桌面,打开网页即可随时随地的使用各种软件,
|
|
||||||
无论这些软件是运行在本机,还是远程,还是任何虚拟的空间,无论是内存还是磁盘。`
|
|
||||||
field "电脑桌面" web.chat.macos.desktop style output
|
|
||||||
|
|
||||||
spark title "绘图工具"
|
|
||||||
spark `一款网页版的绘图工具,打开网页即可随时随地的画图,
|
|
||||||
无论这些文件是保存在本机,还是远程,还是任何虚拟的空间,无论是内存还是磁盘。`
|
|
||||||
field "绘图工具" web.wiki.draw
|
|
||||||
|
|
||||||
spark title "计划表"
|
|
||||||
spark `一款网页版的任务计划表,打开网页即可随时随地的安排时间与任务。`
|
|
||||||
field "计划表" web.team.plan
|
|
||||||
|
|
||||||
spark title "编辑器"
|
|
||||||
spark `一款网页版的编辑器,打开网页即可随时随地的编程,
|
|
||||||
无论这些代码是保存在本机,还是远程,还是任何虚拟的空间,无论是内存还是磁盘。`
|
|
||||||
field "编辑器" web.code.inner
|
|
||||||
|
|
||||||
spark title "命令行"
|
|
||||||
spark `一款网页版的命令行,打开网页即可随时随地的敲命令,
|
|
||||||
无论这些命令是运行在本机,还是远程,还是任何虚拟的空间,无论是内存还是磁盘。`
|
|
||||||
field "命令行" web.code.xterm args "ish"
|
|
@ -1,33 +0,0 @@
|
|||||||
title "启动流程"
|
|
||||||
spark `总体来说分为四个阶段,init、ice.Frame.Begin、ice.Frame.Start、ice.Frame.Close。`
|
|
||||||
spark `init,模块注册期。按照引入的顺序依次将每个模块,注册到某个父模块中。`
|
|
||||||
spark `ice.Frame.Begin/c.Merge,模块合并期。全局资源的创建,模块的合并,参数的解析,生成初始化函数。`
|
|
||||||
spark `ice.Frame.Start,框架启动期。加载配置与数据,每个模块依次初始化,执行初始化脚本 init.shy。`
|
|
||||||
spark `ice.Frame.Close,框架退出期。执行退出脚本 exit.shy,每个模块依次退出,保存配置与数据。`
|
|
||||||
|
|
||||||
chain `
|
|
||||||
ice.bin
|
|
||||||
init
|
|
||||||
ice.Cmd
|
|
||||||
Index.MergeCommands
|
|
||||||
ice.Run
|
|
||||||
ice.Frame.Begin
|
|
||||||
c.Merge
|
|
||||||
log.Frame.Begin
|
|
||||||
gdb.Frame.Begin
|
|
||||||
ssh.Frame.Begin
|
|
||||||
ice.Frame.Start
|
|
||||||
ice.init
|
|
||||||
ice._init
|
|
||||||
"source etc/init.shy"
|
|
||||||
log.Frame.Start
|
|
||||||
gdb.Frame.Start
|
|
||||||
ssh.Frame.Start
|
|
||||||
"web.serve start"
|
|
||||||
ice.Frame.Close
|
|
||||||
"source etc/exit.shy"
|
|
||||||
ice._exit
|
|
||||||
log.Frame.Close
|
|
||||||
gdb.Frame.Close
|
|
||||||
ssh.Frame.Close
|
|
||||||
`
|
|
@ -1,3 +0,0 @@
|
|||||||
title "message"
|
|
||||||
spark `无论是前端框架还是后端框架,无论是本地调用还是远程调用,都是使用统一的消息格式。`
|
|
||||||
spark ``
|
|
@ -1,13 +0,0 @@
|
|||||||
package demo
|
|
||||||
|
|
||||||
import "shylinux.com/x/ice"
|
|
||||||
|
|
||||||
type demo struct {
|
|
||||||
list string `name:"list path auto" help:"示例模块"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s demo) List(m *ice.Message, arg ...string) {
|
|
||||||
m.Echo("hello world")
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() { ice.Cmd("web.code.demo", demo{}) }
|
|
@ -1,11 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"shylinux.com/x/ice"
|
|
||||||
_ "shylinux.com/x/icebergs/misc/alpha"
|
|
||||||
_ "shylinux.com/x/icebergs/misc/chrome"
|
|
||||||
_ "shylinux.com/x/icebergs/misc/java"
|
|
||||||
_ "shylinux.com/x/icebergs/misc/node"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() { print(ice.Run()) }
|
|
@ -1,17 +0,0 @@
|
|||||||
Volcanos({river: {
|
|
||||||
product: {name: "产品群", icon: "bi bi-bar-chart-line-fill", storm: {
|
|
||||||
office: {name: "办公 office", icon: "bi bi-bar-chart-line-fill", index: ["web.wiki.portal", "web.chat.macos.desktop", "web.wiki.feel", "web.wiki.draw", "web.wiki.data"]},
|
|
||||||
}},
|
|
||||||
project: {name: "研发群", icon: "bi bi-git", storm: {
|
|
||||||
studio: {name: "研发 studio", icon: "bi bi-git", index: ["web.code.vimer", "web.code.git.status", "web.chat.favor", "web.team.plan", "web.wiki.word"]},
|
|
||||||
}},
|
|
||||||
profile: {name: "测试群", icon: "bi bi-list-columns", type: aaa.TECH, storm: {
|
|
||||||
release: {name: "发布 release", icon: "bi bi-list-check", index: ["web.code.compile", "web.code.publish", "web.code.pprof", "web.code.bench", "web.dream", "web.space", "web.code.git.service", "web.code.git.status"]},
|
|
||||||
}},
|
|
||||||
operate: {name: "运维群", icon: "bi bi-gear", type: aaa.TECH, storm: {
|
|
||||||
web: {name: "应用 web", icon: "bi bi-browser-chrome", index: ["broad", "serve", "space", "dream", "share"]},
|
|
||||||
aaa: {name: "权限 aaa", icon: "bi bi-people-fill", index: ["offer", "email", "user", "totp", "sess", "role"]},
|
|
||||||
cli: {name: "系统 cli", icon: "bi bi-windows", index: ["qrcode", "daemon", "runtime", "cli.procstat", "cli.procinfo", "mirrors", "signal", "timer", "routine", "log.debug"]},
|
|
||||||
nfs: {name: "文件 nfs", icon: "bi bi-server", index: ["dir", "cat", "tar", "pack", "tail", "trash", "server", "host", "port"]},
|
|
||||||
}},
|
|
||||||
}, list: ["/require/modules/bootstrap-icons/font/bootstrap-icons.min.css"]}) // https://icons.getbootstrap.com/
|
|
@ -1,133 +0,0 @@
|
|||||||
title "创建模块"
|
|
||||||
spark `如果框架自带的模块满足不了需求,并且网上找不到现成的功能模块,可使用 Contexts 提供的框架与工具,快速开发出新的功能模块。
|
|
||||||
Contexts 添加模块也非常简单,就是在 init 函数里,用命令名加一个结构体,调用 ice.Cmd() 注册到框架即可。`
|
|
||||||
|
|
||||||
chapter `创建模块`
|
|
||||||
spark `如下创建目录,并添加代码。将目录名与文件名中的 demo 替换成自己所需的模块名。`
|
|
||||||
shell `
|
|
||||||
mkdir src/demo/
|
|
||||||
vi src/demo/demo.go
|
|
||||||
`
|
|
||||||
spark inner demo.go
|
|
||||||
spark `ice.Cmd() 函数会通过反射,查找结构体的方法列表与属性列表,生成模块并注册到框架中。
|
|
||||||
只有参数是 (*ice.Message, ...string) 的方法,才会注册到模块中,并且通过同名属性的 tag,来定义接口的参数与其它信息。
|
|
||||||
所以,所有的后端接口,第一个参数都是 ice.Message, 第二个参数是根据同名属性的 tag,解析出来的参数列表 arg 。`
|
|
||||||
|
|
||||||
spark `例如,这里的 List 方法与 list 属性。通过读出属性 list 的 tag, 解析 name 字段 <code>list path auto</code>,来生成接口参数,
|
|
||||||
其中 list 指定接口名,path 指定第一个参数名,auto 指定需要自动生成两个按钮。所以在自动生成的前端界面上,参数栏,有一个输入框名为 path,有两个按钮 list 与 back。
|
|
||||||
在后端接收到请求时,参数 path 的值,就会放到 arg[0] 中。
|
|
||||||
`
|
|
||||||
spark `如果 list 的 tag 是 <code>name:"list path file line auto"</code>,
|
|
||||||
那么在自动生成的前端界面上,就会有三个输入框,名称依次为 path、file、line。
|
|
||||||
后端接收到的请求时,arg[0] 就是 path 的值,arg[1] 就是 file 的值,arg[2] 就是 line 的值。
|
|
||||||
`
|
|
||||||
spark `另外,工具的标题栏是 <code>demo(示例模块)</code>,就是从属性 list 的 tag 中, 取的 help 与 从 ice.Cmd() 第一个参数中取的命令名。`
|
|
||||||
|
|
||||||
section "struct tag 语法"
|
|
||||||
spark `Contexts 会根据属性的 tag,自动生成前端界面。tag 的完整语法是 <code>name:type=value@script</code>。
|
|
||||||
如 list 的 tag 完整定义是 <code>name:"list path:text=src/@key.js auto"</code>,其中 path 是参数名,另外三个字段如下`
|
|
||||||
order `
|
|
||||||
:号后面,是参数的类型,text 是文本输入框,select 是下拉选择框,button 是按钮。
|
|
||||||
=号后面,是参数的初始值,如果参数的类型是select,参数值用逗号 <code>,</code> 分隔多个参数。
|
|
||||||
@号后面,是前端插件,可以用指定的脚本,自定义这个输入控件的交互,如 key.js、date.js。
|
|
||||||
`
|
|
||||||
spark `这三个字段都是可以选的,如 <code>path:text</code>、<code>path=src/</code>、<code>path:text=src/</code>,都是可正常解析的。
|
|
||||||
需要注意的是,中间不能有任何空格和空值,否则就是两个参数了,如 <code>path :text</code>、<code>path:=src/</code> 都是非法的。
|
|
||||||
`
|
|
||||||
|
|
||||||
chapter "ice.Message 消息"
|
|
||||||
spark `在 Contexts 中,不论是后端模块,还是前端模块,不论是本地调用,还是远程调用,都是统一的由消息驱动。
|
|
||||||
所以 ice.Message 提供了丰富的接口。这里简单介绍几个最常用的接口。`
|
|
||||||
|
|
||||||
section "获取参数"
|
|
||||||
spark `除了接口定义的参数 arg,还可以调用 m.Option(),获取更丰富的参数。`
|
|
||||||
spark `如下,可以获取用户的相关信息。`
|
|
||||||
spark inner `
|
|
||||||
m.Option(ice.MSG_USERNAME)
|
|
||||||
m.Option(ice.MSG_USERROLE)
|
|
||||||
m.Option(ice.MSG_USERNICK)
|
|
||||||
`
|
|
||||||
|
|
||||||
section "获取配置"
|
|
||||||
spark `Contexts 还提供了统一的模块配置。这些配置可以在启动文件 ./etc/init.shy 中设置,也可以在运行时读写,
|
|
||||||
服务进程退出前,会把这些配置保存到磁盘中,服务重启时,会再加载到内存,所以这些配置会一直有效。`
|
|
||||||
spark inner `
|
|
||||||
m.Config("short")
|
|
||||||
m.Config("field")
|
|
||||||
`
|
|
||||||
|
|
||||||
section "返回数据"
|
|
||||||
spark `ice.Message 最常用的返回数据有两种,一种是表格类的,一种是文本类的。`
|
|
||||||
spark `如下调用 m.Echo,就会在自动生成的前端界面上,输出纯文本 <code>hello world</code>。`
|
|
||||||
spark inner `m.Echo("hello world")`
|
|
||||||
spark `如下调用 m.Push,就会在自动生成的前端界面上,输出一个表头为 path 和 file ,并且有两行数据的表格。`
|
|
||||||
spark inner `
|
|
||||||
m.Push("path, "src/").Push("file", "main.go")
|
|
||||||
m.Push("path, "etc/").Push("file", "init.shy")
|
|
||||||
`
|
|
||||||
spark `还可以用 m.StatueTimeCount() 指定在前端界面上状态栏里展示的信息。`
|
|
||||||
spark inner `m.StatusTimeCount()`
|
|
||||||
|
|
||||||
section "模块调用"
|
|
||||||
spark `Contexts 所有的功能都是模块化的,每个模块都可以独立编译,不依赖于其它模块。
|
|
||||||
所以要想使用其它模块的功能,是不能直接通过函数调用。后端框架封装了几个模块间调用的接口。`
|
|
||||||
spark `如下,查看 src/ 目录下的文件列表,m.Cmdy() 调用了命令 "nfs.dir",指定了参数 "src/"。`
|
|
||||||
spark inner `m.Cmdy("nfs.dir", "src/")`
|
|
||||||
|
|
||||||
spark `模块的每次调用都会创建一个新的消息,所以如何合并父消息和子消息的数据,就可以调用不同的接口,m.Cmd()、m.Cmdx()、m.Cmdy()。`
|
|
||||||
spark `如下,m.Cmd() 调用 tcp.host 命令,但不会将子消息的数据复制到父消息,而是用 msg 保存了子消息,以便之后处理。`
|
|
||||||
spark inner `msg := m.Cmd("tcp.host")`
|
|
||||||
|
|
||||||
spark `如下,m.Cmdx() 调用 cli.system 命令,去执行本机命令 pwd,然后将命令返回的文本数据返回赋值给变量 pwd。`
|
|
||||||
spark inner `pwd := m.Cmdx("cli.system", "pwd")`
|
|
||||||
|
|
||||||
spark `如下,m.Cmdy() 调用 tcp.host 命令,然后将 tcp.host 命令返回的数据,全部复制到当前消息。`
|
|
||||||
spark inner `m.Cmdy("tcp.host")`
|
|
||||||
|
|
||||||
section "前端脚本"
|
|
||||||
spark `Contexts 自动生成的前端界面,默认是使用前端框架 Volcanos 中的 /plugin/table.js 来渲染的界面。可以通过 m.Display() 指定任意 js 文件,来渲染前端界面。`
|
|
||||||
shell `
|
|
||||||
m.Display("/plugin/table.js")
|
|
||||||
m.Display("/plugin/story/trend.js")
|
|
||||||
`
|
|
||||||
spark `还可以在当前模块下,添加一个前端的脚本文件。例如,添加了 src/demo/demo.js,只需要如下引入即可。`
|
|
||||||
shell `m.Display("demo.js")`
|
|
||||||
|
|
||||||
|
|
||||||
chapter `添加模块`
|
|
||||||
spark `模块创建后,需要在 src/main.go 中引入,然后编译一下项目,重启服务即可。`
|
|
||||||
spark inner `
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"shylinux.com/x/ice"
|
|
||||||
|
|
||||||
_ "demo/src/demo"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() { print(ice.Run()) }
|
|
||||||
`
|
|
||||||
|
|
||||||
chapter `添加资源`
|
|
||||||
section "添加配置"
|
|
||||||
spark `Contexts 提供了统一的配置管理。在 ./etc/init.shy 文件中添加模块所需的配置即可。`
|
|
||||||
spark `如下定义配置,用 config 命令设置 web.code.demo 命令的 expire 配置。`
|
|
||||||
spark inner `config web.code.demo meta.expire 30s`
|
|
||||||
spark `需要注意的是 expire 前面有个前缀 meta。其实 config 为每个模块,定义了一个完整的数据库,config 不仅可以读写配置,还可以读写数据,所以 meta 前缀代表配置,其它的前缀还有 hash、list 等。`
|
|
||||||
|
|
||||||
spark `当同一模块下的配置比较多时,可以先用 <code>~web.code</code> 切换到 code 模块下,就可以省略命令前缀。`
|
|
||||||
spark inner `
|
|
||||||
~web.code
|
|
||||||
config demo meta.expire 30s
|
|
||||||
config compile meta.env "GOBIN=xxx,GOPATH=xxx,GOROOT=xxx"
|
|
||||||
`
|
|
||||||
|
|
||||||
spark `在代码中,就可以取到此配置了。`
|
|
||||||
spark inner `m.Config("expire")`
|
|
||||||
|
|
||||||
section "添加模板"
|
|
||||||
spark `Contexts 提供了统一的模板管理。在 ./src/template/ 目录中添加模块所需的模板即可。`
|
|
||||||
|
|
||||||
section "添加文档"
|
|
||||||
spark `Contexts 提供了统一的文档管理。在 ./src/document/ 目录中添加模块所需的文档即可。`
|
|
||||||
|
|
@ -1,74 +0,0 @@
|
|||||||
title "创建项目"
|
|
||||||
spark `当 Contexts 自带的软件工具,无法满足使用需求时,可使用 Contexts 提供的框架与工具,快速创建出新的项目。`
|
|
||||||
|
|
||||||
chapter "创建项目"
|
|
||||||
spark `Contexts 提供了后端框架 <code>shylinux.com/x/ice</code>,只需要通过 import 引入依赖,并调用 ice.Run() 即可启动框架。`
|
|
||||||
section "初始化"
|
|
||||||
spark `先取好一个项目名,并用项目名创建一个新的目录,将这里的 demo 换成自己的项目名即可,并初始化成 golang 的项目 。`
|
|
||||||
shell `
|
|
||||||
mkdir demo; cd demo
|
|
||||||
go mod init demo
|
|
||||||
`
|
|
||||||
|
|
||||||
section "添加代码"
|
|
||||||
spark `添加 src/main.go,并输入以下代码。`
|
|
||||||
shell `
|
|
||||||
mkdir src
|
|
||||||
vi src/main.go
|
|
||||||
`
|
|
||||||
spark inner `
|
|
||||||
package main
|
|
||||||
|
|
||||||
import "shylinux.com/x/ice"
|
|
||||||
|
|
||||||
func main() { print(ice.Run()) }
|
|
||||||
`
|
|
||||||
|
|
||||||
section "编译构建"
|
|
||||||
spark `下载框架,并编译项目。`
|
|
||||||
shell `
|
|
||||||
go get shylinux.com/x/ice
|
|
||||||
go build -v -o bin/ice.bin src/main.go
|
|
||||||
`
|
|
||||||
|
|
||||||
section "启动服务"
|
|
||||||
spark `服务启动后,也会启动一个交互式的 shell,可以通过命令或信号进行各种操作。`
|
|
||||||
shell `./bin/ice.bin forever start`
|
|
||||||
order `
|
|
||||||
Ctrl + C 重启服务。
|
|
||||||
Ctrl + \\ 退出服务。
|
|
||||||
exit 命令, 保存数据,并退出服务。
|
|
||||||
quit 命令,不保存数据,直接退出服务。
|
|
||||||
`
|
|
||||||
|
|
||||||
section "访问服务"
|
|
||||||
spark `Contexts 的后端框架,默认添加了很多功能模块,开箱即用,如下列表。`
|
|
||||||
refer `
|
|
||||||
首页 http://localhost:9020/
|
|
||||||
官网 http://localhost:9020/wiki/portal/
|
|
||||||
后台 http://localhost:9020/chat/portal/
|
|
||||||
桌面 http://localhost:9020/chat/cmd/desktop
|
|
||||||
文档 http://localhost:9020/chat/cmd/word
|
|
||||||
编辑器 http://localhost:9020/chat/cmd/vimer
|
|
||||||
`
|
|
||||||
|
|
||||||
chapter "添加模块"
|
|
||||||
spark `Contexts 所有功能都是模块化的,只需要通过 import 引入即可。每个模块启动时都会通过 init 函数,将自己的功能注册到框架中。`
|
|
||||||
spark `如果从网上找到了现成的功能模块,直接引入即可。 如下所示,通过 import 添加了四个功能模块。然后编译项目并重启服务即可。`
|
|
||||||
spark inner main.go
|
|
||||||
|
|
||||||
chapter "管理系统"
|
|
||||||
spark `Contexts 提供了前端框架 <code>https://shylinux.com/x/volcanos</code>,前端也实现了功能模块化,并且由后端驱动。
|
|
||||||
Contexts 默认会自带一个后台管理系统,并且可以随时定制化,将任意的软件工具添加到导航栏、搜索栏等。`
|
|
||||||
|
|
||||||
section "导航栏"
|
|
||||||
spark `后台管理系统,就是用 src/main.js 构建的。新添加的功能模块,如果需要添加到管理系统的导航栏,直接修改 src/main.js 文件即可,代码如下。`
|
|
||||||
spark inner main.js
|
|
||||||
|
|
||||||
section "搜索栏"
|
|
||||||
spark `将新功能添加到搜索栏。打开搜索框,在输入关键字前,会提前展示一些内容。`
|
|
||||||
|
|
||||||
chapter "命令网页"
|
|
||||||
spark `新添加的功能模块,默认的就会有一个独立的网页展示。地址就像 <a>http://localhost:9020/chat/cmd/vimer</a>,其中 cmd 后面就是工具的名称。
|
|
||||||
这样就可以通过 URL 很快的打开任意的软件工具,直接快速的使用功能。
|
|
||||||
`
|
|
@ -1,26 +0,0 @@
|
|||||||
navmenu `
|
|
||||||
"功能开发" create/
|
|
||||||
"创建项目" project.shy
|
|
||||||
"创建模块" module.shy
|
|
||||||
|
|
||||||
"框架原理" contexts/
|
|
||||||
"后端框架" icebergs/
|
|
||||||
"启动流程" boot.shy
|
|
||||||
"模块注册" merge.shy
|
|
||||||
"事件消息" event.shy
|
|
||||||
"远程调用" space.shy
|
|
||||||
"前端框架" volcanos/
|
|
||||||
"加载流程" boot.shy
|
|
||||||
"模块注册" merge.shy
|
|
||||||
"事件消息" event.shy
|
|
||||||
"请求数据" space.shy
|
|
||||||
|
|
||||||
"框架接口" interface/
|
|
||||||
"后端框架" icebergs/
|
|
||||||
ice ice.shy
|
|
||||||
Context ctx.shy
|
|
||||||
Message msg.shy
|
|
||||||
"前端框架" volcanos/
|
|
||||||
"相关技术" technology/
|
|
||||||
"开发工具" content.shy
|
|
||||||
`
|
|
@ -1,2 +0,0 @@
|
|||||||
title "ice.Message"
|
|
||||||
spark `ice.Message 是 Contexts 是核心的结构体。`
|
|
@ -1,8 +0,0 @@
|
|||||||
title "开发工具"
|
|
||||||
refer `
|
|
||||||
MDN https://developer.mozilla.org/en-US/docs/Web
|
|
||||||
Edge https://www.microsoft.com/zh-cn/edge/download?form=MA13FJ
|
|
||||||
VSCode https://code.visualstudio.com/docs/?dv=osx
|
|
||||||
Bing https://cn.bing.com
|
|
||||||
Docker https://docs.docker.com/engine/install/
|
|
||||||
`
|
|
@ -1,42 +0,0 @@
|
|||||||
title "快速下载"
|
|
||||||
chapter "下载程序"
|
|
||||||
spark `Contexts 使用 Golang 开发,支持交叉编译,所以在各种操作系统上都只需要一个 bin 文件,直接下载执行即可。`
|
|
||||||
spark `
|
|
||||||
为了方便下载并快速启动,可以使用如下命令。
|
|
||||||
自动选择下载命令 curl 或 wget,
|
|
||||||
自动识别出操作系统与处理器类型,然后下载所需的 bin 文件,并自动启动服务进程。
|
|
||||||
点击下面的命令,即可直接复制,然后打开命令行终端,执行一下即可。
|
|
||||||
`
|
|
||||||
web.code.publish binary
|
|
||||||
spark `在 Windows 系统上,可以下载 <a href="https://git-scm.com/download">Git-Bash</a>,在 Git-Bash 的命令行中下载。`
|
|
||||||
|
|
||||||
chapter "使用方式"
|
|
||||||
spark `
|
|
||||||
下载成功后,会自动启动服务进程,并会启动一个可交互的 shell。
|
|
||||||
既可以在命令行中,通过命令的方式,使用 Contexts 提供的所有软件工具,
|
|
||||||
也可以在浏览器中,通过网页的方式,使用所有的软件工具。
|
|
||||||
`
|
|
||||||
spark `在启动的 shell 中执行命令,输入命令 <kdb>exit<kdb>,并输入回车键,即可退出服务进程。`
|
|
||||||
spark `也可以通过信号控制进程,<kbd>Ctrl+C</kbd> 重启进程,<kbd>Ctrl+\\</kdb> 退出进程。`
|
|
||||||
spark `再次启动服务进程,输入命令 ./bin/ice.bin 即可。`
|
|
||||||
|
|
||||||
section "目录结构"
|
|
||||||
spark `下载成功后,Contexts 会以当前目录为工作空间,相关的数据与文件也只会保存在当前目录。所以下载之前,最好先创建一个目录 contexts。`
|
|
||||||
order `
|
|
||||||
./bin/ice.bin 程序文件
|
|
||||||
./var/conf/ 配置目录
|
|
||||||
./var/data/ 数据目录
|
|
||||||
./var/log/ 日志目录
|
|
||||||
`
|
|
||||||
spark `其中 ./bin/ice.bin 就是下载的程序文件,直接运行即可使用。其它的文件,都是在程序运行时生成的文件。`
|
|
||||||
|
|
||||||
section "终端命令"
|
|
||||||
spark `
|
|
||||||
contexts 可以创建任意多个工作空间,为了保证每个工作空间的完整性与独立性,每个工作空间下都会保存运行所需的所有文件。
|
|
||||||
所以并不需要将 ice.bin 文件放到全局的 PATH 中,在当前工作空间的目录中,完成所有操作。
|
|
||||||
`
|
|
||||||
spark `Contexts 也支持在命令行终端中执行一次性命令。`
|
|
||||||
spark `查看网卡信息`
|
|
||||||
shell `./bin/ice.bin tcp.host`
|
|
||||||
spark `执行本机系统命令,pwd 查看当前路径。`
|
|
||||||
shell `./bin/ice.bin cli.system pwd`
|
|
@ -1,9 +0,0 @@
|
|||||||
navmenu `
|
|
||||||
"{{ .Make.Remote | Base | Capital }}" /
|
|
||||||
_
|
|
||||||
"下 载" download/
|
|
||||||
"文 档" started/
|
|
||||||
"命 令" commands/
|
|
||||||
"开 发" development/
|
|
||||||
"资 源" https://repos.shylinux.com/explore/repos
|
|
||||||
`
|
|
@ -1,8 +0,0 @@
|
|||||||
title "resources"
|
|
||||||
spark `Contexts 是一个工具系统,基于 Contexts 可以开发出更多的工具系统。
|
|
||||||
这些工具系统,既可以直接下载编译单独使用,也可以在自己的工具系统,通过 import 引入这些依赖库,丰富自己的功能。`
|
|
||||||
|
|
||||||
source mysql.shy
|
|
||||||
source redis.shy
|
|
||||||
source docker.shy
|
|
||||||
source golang.shy
|
|
@ -1,9 +0,0 @@
|
|||||||
chapter "docker-story"
|
|
||||||
brief `基于 Contexts 开发的,Docker 管理工具,包括客户端、安装器、集群管理工具等。`
|
|
||||||
table `
|
|
||||||
模块 命令 功能
|
|
||||||
`
|
|
||||||
shell `
|
|
||||||
git clone https://shylinux.com/x/docker-story
|
|
||||||
cd docker-story; source etc/miss.sh
|
|
||||||
`
|
|
@ -1,9 +0,0 @@
|
|||||||
chapter "golang-story"
|
|
||||||
brief `基于 Contexts 开发的,Golang 管理工具,包括客户端、安装器、集群管理工具等。`
|
|
||||||
table `
|
|
||||||
模块 命令 功能
|
|
||||||
`
|
|
||||||
shell `
|
|
||||||
git clone https://shylinux.com/x/golang-story
|
|
||||||
cd golang-story; source etc/miss.sh
|
|
||||||
`
|
|
@ -1,13 +0,0 @@
|
|||||||
chapter "mysql-story"
|
|
||||||
brief `基于 Contexts 开发的,Mysql 管理工具,包括客户端、安装器、集群管理工具等。`
|
|
||||||
table `
|
|
||||||
模块 命令 功能
|
|
||||||
shylinux.com/x/mysql-story/src/client web.code.mysql.client Mysql的客户端
|
|
||||||
shylinux.com/x/mysql-story/src/client web.code.mysql.query Mysql的数据查询
|
|
||||||
shylinux.com/x/mysql-story/src/client web.code.mysql.grant Mysql的权限管理
|
|
||||||
shylinux.com/x/mysql-story/src/server web.code.mysql.server Mysql的下载、编译、安装
|
|
||||||
`
|
|
||||||
shell `
|
|
||||||
git clone https://shylinux.com/x/mysql-story
|
|
||||||
cd mysql-story; source etc/miss.sh
|
|
||||||
`
|
|
@ -1,12 +0,0 @@
|
|||||||
chapter "redis-story"
|
|
||||||
brief `基于 Contexts 开发的,Redis 管理工具,包括客户端、安装器、集群管理工具等。`
|
|
||||||
table `
|
|
||||||
模块 命令 功能
|
|
||||||
shylinux.com/x/redis-story/src/client web.code.redis.client Redis的客户端
|
|
||||||
shylinux.com/x/redis-story/src/server web.code.redis.server Redis的下载、编译、安装
|
|
||||||
shylinux.com/x/redis-story/src/cluster web.code.redis.cluster Redis的集群部署与管理工具
|
|
||||||
`
|
|
||||||
shell `
|
|
||||||
git clone https://shylinux.com/x/redis-story
|
|
||||||
cd redis-story; source etc/miss.sh
|
|
||||||
`
|
|
@ -1,13 +0,0 @@
|
|||||||
title "Contexts"
|
|
||||||
brief `Contexts 是一个功能完备的工具系统。`
|
|
||||||
order `
|
|
||||||
Contexts 是一个工具箱,内置了很多实用的软件工具,开箱即用,每个工具既可以在命令行中使用,又可以在网页中使用。
|
|
||||||
Contexts 是一个工具框架,有成千上万种工具,可以自由的选择和组合,快速构建出自己专属的工具系统。
|
|
||||||
Contexts 是一个文档系统,所有软件工具,都可以在笔记文档中直接引用,用简单的纯文本,就能快速构建出丰富的网页与网站。
|
|
||||||
Contexts 是一个编辑器框架,所有的软件工具,都可以在编辑器中直接使用,支持语法高亮、补全、跳转、模板等,支持语法模块的动态扩展。
|
|
||||||
Contexts 是一个开发工具箱,集成了软件开发常用的工具,如编辑器、编译器等,不需要下载任何其它软件,即可完成整个开发流程。
|
|
||||||
Contexts 是一个微服务框架,支持远程调用,支持分布式部署、支持自动化组建集群。
|
|
||||||
Contexts 使用 Golang 开发,完全跨平台,支持 Linux、macOS、Windows 等,一套工具系统源码,即可所有平台都能使用。
|
|
||||||
Contexts 构建完成后只有一个 bin 文件,大小只有 20M,方便传输与存储。
|
|
||||||
Contexts 支持脚本、支持模板、支持内存版文件系统、支持内存版数据库,可以快速开发出一个完整的软件应用。
|
|
||||||
`
|
|
@ -1 +0,0 @@
|
|||||||
spark inner LICENSE
|
|
@ -1,44 +0,0 @@
|
|||||||
title "认证授权"
|
|
||||||
spark `Contexts 有多种认证方式,但就是坚决不支持密码,因为密码是非常不安全,且会给用户添加很多负担。`
|
|
||||||
|
|
||||||
chapter "自动认证"
|
|
||||||
spark `服务启动时,会自动获取本机的用户名,来作为根用户,从本机发出的所有请求都会默认使用此用户,拥有所有操作的权限。
|
|
||||||
所以在浏览器直接访问 <a>http://localhost:9020</a> 是不需要认证的,会自动登录。`
|
|
||||||
spark `但如果机器是共享机器,和其他用户共享的,就需要关闭自动认证。
|
|
||||||
在启动脚本 <code>./etc/init.shy</code> 或 <code>./etc/local.shy</code> 中,添加如下两行代码,禁用自动认证。`
|
|
||||||
spark inner `
|
|
||||||
~web
|
|
||||||
serve domain ""
|
|
||||||
` args "etc/local.shy"
|
|
||||||
|
|
||||||
chapter "授权认证"
|
|
||||||
spark `当访问其它机器上的 Contexts 服务时,就需要登录认证。`
|
|
||||||
order `
|
|
||||||
如果在手机上已经登录,直接扫码即可授权电脑登录。
|
|
||||||
如果可以访问到后台服务的 shell,直接执行授权命令即可。
|
|
||||||
如果是新用户,则需要老用户发送邀请链接,获取登录权限。
|
|
||||||
如果是公开平台,则会提供用户注册的功能。
|
|
||||||
`
|
|
||||||
|
|
||||||
section "扫码登录"
|
|
||||||
spark `当网页被打开时,如果没有登录,则会展示登录界面,目前只支持扫码登录和命令授权登录。用已经登录的手机,扫描二维码,即可授权登录。`
|
|
||||||
|
|
||||||
section "授权登录"
|
|
||||||
spark `后台可以执行授权命令,授权网页登录,在登录界面会生成一个授权命令,复制后,在后台执行一下即可。`
|
|
||||||
|
|
||||||
section "邀请登录"
|
|
||||||
spark `Contexts 提供了发送邮件的功能,老用户可以发送邀请链接,邀请新用户使用此设备。`
|
|
||||||
spark `aaa.offer 命令是发送邀请的工具。点创建,指定用户邮箱和邀请主题,发送即可。`
|
|
||||||
spark `<a>http://localhost:9020/chat/cmd/offer</a>`
|
|
||||||
|
|
||||||
section "用户注册"
|
|
||||||
spark `详情请见 Contexts 搭建的一些公开平台,提供的注册方式。`
|
|
||||||
|
|
||||||
chapter "认证中心"
|
|
||||||
spark `如果服务启动时,连接了远程服务,远程服务节点会自动成为认证中心。
|
|
||||||
当其他用户访问本机的服务时,如果没有登录,则会自动跳转到远程服务的网页中进行认证,认证成功后,再将用户信息带回来,从而自动登录本机。
|
|
||||||
所以,在一个集群中的所有设备,只要有一台设备存储用户信息,其它所有设备,都可以实现自动登录。
|
|
||||||
`
|
|
||||||
section `远程权限`
|
|
||||||
spark `远程服务器上的用户,访问本机服务时,默认会使用远程服务器上权限。
|
|
||||||
如果远程服务器是不可信的,可以在启动脚本中配置远程用户的权限,从而将安全风险降低。`
|
|
@ -1,40 +0,0 @@
|
|||||||
title "组建集群"
|
|
||||||
spark `Contexts 既可以在一台机器上,启动任意多个工作空间。也可以把多台机器组网到一起。
|
|
||||||
在 Contexts 看来,本机的工作空间,与其它设备上的工作空间是没有区别的,都可以在同一个网页中无差别的使用。`
|
|
||||||
spark `因为现在每个人都可能会有很多台电脑,比如笔记本、台式机、开发机、服务器、开发板等。
|
|
||||||
每台设备上的软件都需要下载、安装、配置、升级,还要不断的同步数据,这是一个非常复杂且浪费时间的事情。`
|
|
||||||
spark `使用 Contexts 就可以很方便的,管理起这么多种设备和软件。只需要构建一个 Contexts 项目,选择自己的工具集合,就可以通过交叉编译,生成各种操作系统上可运行的软件。`
|
|
||||||
spark `Contexts 还会自动组网,将所有设备连接到一起。通过任意一台设备,都可以使用其它设备上所有的工具与数据。即使这些设备不在一起,比如公司的电脑和家里的电脑。`
|
|
||||||
|
|
||||||
chapter "启动服务"
|
|
||||||
spark `Contexts 服务启动时,默认的会启动集群的功能,本机的工作空间与其它机器的服务节点连接此服务节点的方式都是一样,
|
|
||||||
惟一不同中的是,为了安全起见,子设备的名称默认是用 IP + Port,如需自定义子设备的节点名,需要子设备提供认证授权的信息才行。`
|
|
||||||
shell `./bin/ice.bin forever start`
|
|
||||||
|
|
||||||
chapter "连接服务"
|
|
||||||
spark `在另一台机器上,同样下载好 Contexts,并启动服务,在启动命令后加上参数"dev xxx",指定需要连接的服务节点即可。`
|
|
||||||
shell `./bin/ice.bin forever start dev "http://192.168.10.12:9020"`
|
|
||||||
spark `也可以将服务节点的地址添加到环境变量 ctx_dev,启动参数变成 <code>dev dev</code>。`
|
|
||||||
shell `export ctx_dev=http://192.168.10.12:9020`
|
|
||||||
shell `./bin/ice.bin forever start dev dev`
|
|
||||||
|
|
||||||
spark `一般情况下,集群组建的方式,会在一台设备上下载并启动 Contexts。
|
|
||||||
在其它机器,直接从已经启动的 Contexts 服务上,使用快速下载,即可自动组网。`
|
|
||||||
spark `因为 Contexts 是一个工具系统,每个用户都有不同的需求,可以将自己的需要的各种软件工具,自行搭配编译成 Contexts。
|
|
||||||
每个 Contexts 服务,都是一个完整的服务器,提供网页服务、认证服务、文件服务、代码源、镜像源等。
|
|
||||||
所以只要安装好 Contexts 后,就可以为同一网络中的所有机器,提供各种服务,不需要依赖外部网络。
|
|
||||||
`
|
|
||||||
|
|
||||||
chapter "访问子设备"
|
|
||||||
spark `当子设备的服务起动成功,并连接上父设备后,就可以把子设备当成父设备的工作空间来使用。`
|
|
||||||
section "打开子设备"
|
|
||||||
spark `如果导航栏未定制,在左边导航栏中打开运维群 -> 应用,然后在右边工作区中,找到 space,即空间管理的工具。`
|
|
||||||
spark `<a>http://localhost:9020/chat/portal/?river=operate&storm=web&index=space</a>`
|
|
||||||
iframe "http://localhost:9020/chat/portal/?river=operate&storm=web&index=space"
|
|
||||||
spark `或在搜索框中,直接搜索 space 即可打开空间管理的工具。搜索结果如果有多个,需要手动选择,点击"ctx command web space"一行,才会打开 space 工具。`
|
|
||||||
spark `<a>http://localhost:9020?_search=space</a>`
|
|
||||||
iframe "http://localhost:9020?_search=space"
|
|
||||||
spark `或是直接打开命令网页,<a>http://localhost:9020/chat/cmd/space</a>`
|
|
||||||
spark demo space
|
|
||||||
spark `在空间列表中,找到新启动的子设备,点击打开,即可进入子空间的管理界面。`
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
|||||||
title "应用市场"
|
|
||||||
spark `对于操作系统来说,进程与文件就是最基本的元素。`
|
|
||||||
spark `对于工具系统来说,空间与源码就是最基本的元素。`
|
|
||||||
spark `
|
|
||||||
就像程序文件可以用来启动进程,项目源码可以直接启动 Contexts 的工作空间,工作空间的所有配置与数据也会保存到项目源码中。
|
|
||||||
所以代码平台直接可以成为应用市场,项目源码可以一键启动工作空间。
|
|
||||||
`
|
|
||||||
chapter "代码平台"
|
|
||||||
spark `
|
|
||||||
Contexts 提供了完整的前后端框架与工具,可以快速开发出新的项目与模块。
|
|
||||||
基于 Contexts 框架开发的项目,都可以直接用来启动 Contexts 的空间。
|
|
||||||
这些项目可以存放到任意的平台上,在启动工作空间时,指定代码地址即可。
|
|
||||||
`
|
|
||||||
spark `
|
|
||||||
为了方便用户使用,Contexts 提供了代码平台 <a>https://repos.shylinux.com/explore/repos</a>。
|
|
||||||
也可以通过命令工具 web.code.git.search 来访问。在项目列表中,点启动按钮,可以直接下载代码并启动工作空间。
|
|
||||||
`
|
|
||||||
spark demo web.code.git.search
|
|
@ -1,6 +0,0 @@
|
|||||||
title "共享链接"
|
|
||||||
spark `在 Contexts 的工具系统中,所有的工作空间与命令工具,都可以一键共享,就可以实现多设备协同,或是多人协同使用。`
|
|
||||||
|
|
||||||
chapter "共享工具"
|
|
||||||
chapter "共享群组"
|
|
||||||
chapter "共享空间"
|
|
@ -1,89 +0,0 @@
|
|||||||
title "工作空间"
|
|
||||||
spark `
|
|
||||||
Contexts 下载并启动后,会以当前运行目录为工作空间,加载启动脚本和保存数据与文件。
|
|
||||||
Contexts 不推荐使用全局的资源或家目录的文件,为了减少全局依赖与资源冲突。从而可以在一台机器上启动任意多个空间。
|
|
||||||
Contexts 推荐使用空间来管理项目与任务。
|
|
||||||
`
|
|
||||||
spark `
|
|
||||||
Contexts 每个空间都是一个独立的目录,与独立的守护进程。
|
|
||||||
每个空间既可以使用相同的 Contexts,也可以使用不同的 Contexts,即不同的工具集合。因为每个项目内容可能是不一样的,使用的工具也可能是不一样的。
|
|
||||||
`
|
|
||||||
|
|
||||||
chapter "空间管理"
|
|
||||||
section "启动服务"
|
|
||||||
spark `首先,启动 Contexts 服务。并打开后台管理系统。<a>http://localhost:9020/chat/portal/</a>`
|
|
||||||
shell `
|
|
||||||
./bin/ice.bin forever start
|
|
||||||
open http://localhost:9020
|
|
||||||
`
|
|
||||||
|
|
||||||
section "打开工具"
|
|
||||||
spark `打开管理系统后,点击标题栏中的 "空间",打开空间管理工具,`
|
|
||||||
spark `或是直接通过地址打开空间管理工具 <a>http://localhost:9020/chat/cmd/dream</a>`
|
|
||||||
spark demo dream
|
|
||||||
|
|
||||||
section "创建空间"
|
|
||||||
spark `点击工具栏中的创建按钮,即可打开创建对话框。`
|
|
||||||
spark `空间创建有 name、repos、binary、template 四个参数,其中 name 是必选参数,指定空间名,创建空间时,Contexts 会默认给空间名加一个时间前缀。`
|
|
||||||
order `
|
|
||||||
repos 指定 git 仓库地址,Contexts 将此仓库下载到本地,然后把此目录当成工作空间。
|
|
||||||
binary 指定 bin 文件,Contexts 会自动下载并使用这个 bin 文件,来直接启动守护进程。
|
|
||||||
template 指定模板目录,空间创建时,会从模板目录中复制所需要的文件。
|
|
||||||
`
|
|
||||||
spark `
|
|
||||||
空间创建成功后,会在 ./usr/local/work 目录下创建一个空间的目录。并启动一个守护进程。
|
|
||||||
守护进程会自动连接服务进程,从而使用服务进程提供的网页,来访问此空间。
|
|
||||||
`
|
|
||||||
|
|
||||||
section "使用空间"
|
|
||||||
spark `空间创建成功后,会自动打开空间首页。之后也可以在空间工具中,随时打开任意空间的首页。`
|
|
||||||
spark `空间打开后,即可在这个空间中,使用任意工具,去完成自己的工作。`
|
|
||||||
spark `所有的工具产生的数据与文件,也只会保存在自己空间目录下,不会对其它空间有任何影响。`
|
|
||||||
spark `如果当前空间下的工具,不能满足使用,也可以随时开发,创建新的工具。`
|
|
||||||
|
|
||||||
chapter "发布空间"
|
|
||||||
spark `Contexts 中的空间,除有独立的目录与进程,用来进行资源隔离和项目管理以外,还有更多的功能特性。`
|
|
||||||
spark `虽然工作空间,默认没有分配端口,没有启动任何服务,但是可以通过服务进程作反向代理,将工作空间内的工具、文件、资源对外发布。`
|
|
||||||
|
|
||||||
section "服务源"
|
|
||||||
spark `
|
|
||||||
Contexts 的工作空间启动后,可以通过服务进程中的空间管理工具来操作。
|
|
||||||
也可以在单独网页中使用。例如 redis-story 项目的首页地址是 <a>http://localhost:9020/chat/pod/20230511-redis-story</a>
|
|
||||||
`
|
|
||||||
iframe "http://localhost:9020/chat/pod/20230511-redis-story"
|
|
||||||
spark `
|
|
||||||
每个工作空间,都可以灵活的配置自己的首页。Contexts 中的所有工具,都有自己的网页界面,都可以作为空间的首页来使用。
|
|
||||||
例如 redis-story 项目,就选择 web.code.macos.desktop 命令作为自己的首页,这样打开 redis-story 空间,就是一个电脑桌面,完全用图标和窗口来使用所有工具。
|
|
||||||
`
|
|
||||||
|
|
||||||
spark `
|
|
||||||
因为 Contexts 的工作空间,就是一个工作目录加一个守护进程,资源占有非常少,比虚拟机或是容器占有更少的资源。
|
|
||||||
Contexts 的工作空间,为项目管理与服务部署,提供了一个更加轻量、更加完备的解决方案。
|
|
||||||
`
|
|
||||||
spark `每个工作空间下的所有软件工具也可以单独使用。如下地址,pod 和 cmd 分别指定空间名与命令名。`
|
|
||||||
spark `<a>http://localhost:9020/chat/pod/20230511-redis-story/cmd/host</a>`
|
|
||||||
iframe "http://localhost:9020/chat/pod/20230511-redis-story/cmd/host"
|
|
||||||
|
|
||||||
section "镜像源"
|
|
||||||
spark `Contexts 使用 Golang 开发,所以具备了交叉编译的功能。Contexts 封装了一个编译工具 web.code.compile,可以方便的将本空间的代码编译成指定系统与架构的程序,并将相关资源一起打包。`
|
|
||||||
spark `<a>http://localhost:9020/chat/cmd/compile</a>`
|
|
||||||
spark `编译后的程序文件会放到空间目录的 ./usr/publish/ 目录下,通过服务进程作了一个代理,就可以在其它机器,直接下载这个空间的程序文件,并起动任意多个完全相同的空间。`
|
|
||||||
spark `
|
|
||||||
这种使用方式,其实就是最快速的 devops,
|
|
||||||
原始空间就是开发环境,在其它机器起动的空间就是测试环境或生产环境,
|
|
||||||
从开发环境到生产环境,之间所有环节完全打通,甚至可以做到,从开发到上线,只需要一秒钟。并且开发环境与生产环境,完全同时在线,可以实现更快速的闭环互动,全面加速整个研发流程。
|
|
||||||
`
|
|
||||||
spark `
|
|
||||||
如果直接用 wget 或 curl 命令,直接访问工作空间的地址,服务进程检测到请求头 UserAgent 判断出是命令行中的请求。则会直接返回空间的程序文件。
|
|
||||||
因为 bin 文件中,打包了完整的资源文件,所以这样就可以在另一台设备上,快速部署出一个完全一样的工作空间。这个命令只是简单的下载程序文件,在实际使用时,会从空间中复制一个功能更完整的下载命令。
|
|
||||||
`
|
|
||||||
shell `wget http://localhost:9020/chat/pod/20230511-redis-story`
|
|
||||||
|
|
||||||
section "代码源"
|
|
||||||
spark `
|
|
||||||
每个工作空间,都可以绑定一个代码库,在空间目录下的所有文件,都可以被提交到代码库里,包括代码、配置、数据等。
|
|
||||||
不同机器的上工作空间就可以通过代码库,来同步代码与数据,并且记录每次变更的信息。同一台机器上的不同空间,当然也可以共用一个代码库。
|
|
||||||
`
|
|
||||||
|
|
||||||
spark `每个空间的地址,可以直接当成代码地址来使用。服务节点,会自动去查询工作空间的仓库地址,做一个内部重定向。`
|
|
||||||
shell `git clone http://localhost:9020/chat/pod/20230511-redis-story`
|
|
@ -1,41 +0,0 @@
|
|||||||
navmenu `
|
|
||||||
"关于" about/
|
|
||||||
"项目" introduction.shy
|
|
||||||
"授权" license.shy
|
|
||||||
|
|
||||||
"下载安装" install/
|
|
||||||
"快速下载" quick.shy
|
|
||||||
"手动下载" manual.shy
|
|
||||||
"源码编译" source.shy
|
|
||||||
|
|
||||||
"使用方式" interfaces/
|
|
||||||
"命令式" cli.shy
|
|
||||||
"网页式" web.shy
|
|
||||||
|
|
||||||
"基础功能" using/
|
|
||||||
"编辑器" vimer.shy
|
|
||||||
"代码库" repos.shy
|
|
||||||
"收藏夹" favor.shy
|
|
||||||
"任务计划" plan.shy
|
|
||||||
"笔记文档" note.shy
|
|
||||||
"官方网站" site.shy
|
|
||||||
"思维导图" draw.shy
|
|
||||||
"应用桌面" desktop.shy
|
|
||||||
|
|
||||||
"高级特性" feature/
|
|
||||||
"应用市场" repos.shy
|
|
||||||
"工作空间" space.shy
|
|
||||||
"组建集群" cluster.shy
|
|
||||||
"共享链接" share.shy
|
|
||||||
"认证授权" auth.shy
|
|
||||||
|
|
||||||
"应用管理" managing/
|
|
||||||
"目录结构" dir.shy
|
|
||||||
"启动配置" init.shy
|
|
||||||
"启动参数" boot.shy
|
|
||||||
"环境变量" env.shy
|
|
||||||
"日志文件" log.shy
|
|
||||||
"进程控制" signal.shy
|
|
||||||
"数据目录" var.shy
|
|
||||||
"资源目录" usr.shy
|
|
||||||
`
|
|
@ -1,27 +0,0 @@
|
|||||||
title "手动下载"
|
|
||||||
spark `如果有其它需要,例如下载不同系统或不同架构的 bin 文件,可手动下载。如下使用 curl 或 wget 命令,下载所需的 bin 文件。`
|
|
||||||
web.code.publish manual
|
|
||||||
spark `在 Windows 系统上,可以下载 <a href="https://git-scm.com/download">Git-Bash</a>,在 Git-Bash 的命令行中下载。`
|
|
||||||
|
|
||||||
spark `本服务器已经编译好的程序文件如下表`
|
|
||||||
web.code.publish version
|
|
||||||
|
|
||||||
spark `添加执行权限,并重命名文件。`
|
|
||||||
shell linux `
|
|
||||||
chmod u+x ice.linux.amd64
|
|
||||||
mkdir bin; mv ice.linux.amd64 bin/ice.bin
|
|
||||||
` darwin `
|
|
||||||
chmod u+x ice.darwin.amd64
|
|
||||||
mkdir bin; mv ice.darwin.amd64 bin/ice.bin
|
|
||||||
` windows `
|
|
||||||
chmod u+x ice.windows.amd64
|
|
||||||
mkdir bin; mv ice.windows.amd64 bin/ice.bin
|
|
||||||
`
|
|
||||||
spark `启动服务进程。`
|
|
||||||
shell `
|
|
||||||
./bin/ice.bin
|
|
||||||
`
|
|
||||||
spark `退出服务进程。`
|
|
||||||
shell `
|
|
||||||
exit
|
|
||||||
`
|
|
@ -1,48 +0,0 @@
|
|||||||
title "快速下载"
|
|
||||||
chapter "下载程序"
|
|
||||||
spark `Contexts 使用 Golang 开发,支持交叉编译,所以在各种操作系统上都只需要一个 bin 的程序文件,直接下载执行即可。`
|
|
||||||
spark `为了方便下载并快速启动,可以使用如下命令。首先创建一个新的目录,然后执行下载命令。
|
|
||||||
自动选择下载命令 curl 或 wget,
|
|
||||||
自动识别出操作系统与处理器类型,然后下载所需的 bin 文件,并自动启动服务进程。
|
|
||||||
点击下面的命令,即可直接复制,然后打开命令行终端,执行一下即可。`
|
|
||||||
web.code.publish binary
|
|
||||||
spark `在 Windows 系统上,可以下载 <a href="https://git-scm.com/download">Git-Bash</a>,在 Git-Bash 的命令行中下载。`
|
|
||||||
|
|
||||||
chapter "使用方式"
|
|
||||||
spark `下载成功后,会自动启动服务进程,并会启动一个可交互的 shell。
|
|
||||||
既可以在命令行中,通过命令的方式,使用 Contexts 提供的所有软件工具,
|
|
||||||
也可以在浏览器中,通过网页的方式,使用所有的软件工具。`
|
|
||||||
spark `在启动的 shell 中执行命令,输入命令 <kdb>exit<kdb>,并输入回车键,即可退出服务进程。`
|
|
||||||
spark `也可以通过信号控制进程,<kbd>Ctrl+C</kbd> 重启进程,<kbd>Ctrl+\\</kdb> 退出进程。`
|
|
||||||
spark `再次启动服务进程,输入命令 ./bin/ice.bin 即可。`
|
|
||||||
|
|
||||||
section "目录结构"
|
|
||||||
spark `
|
|
||||||
下载成功后,Contexts 会以当前目录为工作空间,相关的数据与文件也只会保存在当前目录。所以下载之前,最好先创建一个目录 contexts。
|
|
||||||
`
|
|
||||||
order `
|
|
||||||
./bin/ice.bin 程序文件
|
|
||||||
./var/conf/ 配置目录
|
|
||||||
./var/data/ 数据目录
|
|
||||||
./var/log/ 日志目录
|
|
||||||
`
|
|
||||||
spark `
|
|
||||||
其中 ./bin/ice.bin 就是下载的程序文件,直接运行即可使用。其它的文件,都是在程序运行时生成的文件。
|
|
||||||
`
|
|
||||||
|
|
||||||
section "终端命令"
|
|
||||||
spark `
|
|
||||||
contexts 可以创建任意多个工作空间,为了保证每个工作空间的完整性与独立性,每个工作空间下都会保存运行所需的所有文件。
|
|
||||||
所以并不需要将 ice.bin 文件放到全局的 PATH 中,在当前工作空间的目录中,完成所有操作。
|
|
||||||
`
|
|
||||||
spark `
|
|
||||||
Contexts 也支持在命令行终端中执行一次性命令。
|
|
||||||
`
|
|
||||||
spark `查看网卡信息`
|
|
||||||
shell `
|
|
||||||
./bin/ice.bin tcp.host
|
|
||||||
`
|
|
||||||
spark `执行本机系统命令,pwd 查看当前路径。`
|
|
||||||
shell `
|
|
||||||
./bin/ice.bin cli.system pwd
|
|
||||||
`
|
|
@ -1,41 +0,0 @@
|
|||||||
title "源码编译"
|
|
||||||
spark `如果想了解 Contexts 的源码与原理,可以直接下载项目所有源码,自己编译后再启动。编译 Contexts 需要提前安装好以下几个软件`
|
|
||||||
refer `
|
|
||||||
git https://git-scm.com/download
|
|
||||||
golang https://golang.google.cn/dl/
|
|
||||||
npm https://nodejs.org/en/download
|
|
||||||
`
|
|
||||||
web.code.publish source
|
|
||||||
spark `执行 <code>etc/miss.sh</code> 脚本,会自动下载所需要的依赖,并编译项目。`
|
|
||||||
spark `启动服务进程。`
|
|
||||||
shell `ish_miss_serve`
|
|
||||||
spark `结束服务进程。`
|
|
||||||
shell `exit`
|
|
||||||
|
|
||||||
chapter "项目组成"
|
|
||||||
spark `Contexts 前后端框架和核心模块全部自研,只有少部分功能使用到了外部代码,并且随时会被干掉,最终不依赖于任何外部项目,做到完全自举。`
|
|
||||||
|
|
||||||
section "核心项目"
|
|
||||||
spark `Contexts 主要由以下几个项目组成。`
|
|
||||||
order `
|
|
||||||
前端框架 https://shylinux.com/x/volcanos
|
|
||||||
后端框架 https://shylinux.com/x/icebergs
|
|
||||||
脚本库 https://shylinux.com/x/intshell
|
|
||||||
工具库 https://shylinux.com/x/toolkits
|
|
||||||
图标库 https://shylinux.com/x/icons
|
|
||||||
打包库 https://shylinux.com/x/ice
|
|
||||||
`
|
|
||||||
|
|
||||||
section "外部依赖"
|
|
||||||
spark `Contexts 后端只依赖三个外部库。`
|
|
||||||
order `
|
|
||||||
https://shylinux.com/x/websocket
|
|
||||||
https://shylinux.com/x/go-qrcode
|
|
||||||
https://shylinux.com/x/go-git
|
|
||||||
`
|
|
||||||
spark `Contexts 前端只使用了三个外部库。`
|
|
||||||
order `
|
|
||||||
bootstrap-icons
|
|
||||||
html2canvas
|
|
||||||
xterm
|
|
||||||
`
|
|
@ -1,26 +0,0 @@
|
|||||||
title "命令交互"
|
|
||||||
spark `Contexts 提供了命令接口,所有的软件工具,都可以通过命令行来使用。`
|
|
||||||
|
|
||||||
chapter "目录结构"
|
|
||||||
spark `Contexts 下载成功后,进入 Contexts 的目录。 Contexts 运行时的所有文件,都只保存在当前目录下。一个完整的目录结构如下。`
|
|
||||||
order `
|
|
||||||
src/ 源码目录,存放本项目所有的代码与文档,如 main.go、main.js、main.shy。
|
|
||||||
etc/ 配置目录,存放启动脚本等各种配置类的文件,如 init.shy、local.shy、exit.shy。
|
|
||||||
bin/ 程序目录,存放编译好的可执行程序文件,如 ice.bin。
|
|
||||||
var/ 数据目录,程序运行时,需要用的各种数据文件,如日志文件、缓存文件。
|
|
||||||
usr/ 资源目录,一些外部资源文件,如第三方库、图标库、发布文件。
|
|
||||||
`
|
|
||||||
spark `因为 Contexts 支持集群化的多空间,每一个工作目录,即是一个工作空间。
|
|
||||||
所有的资源都只存在当前目录,这样可以保证每个工作空间的完整性与独立性。所以每个工作空间,都可以有自己的代码仓库、程序文件、配置文件、运行数据等。
|
|
||||||
`
|
|
||||||
spark `所以在使用 Contexts 时,所有的命令都在这个目录下执行。并不需要安装到全局的 PATH 中,直接 ./bin/ice.bin 即可。`
|
|
||||||
|
|
||||||
chapter "执行命令"
|
|
||||||
spark `tcp.host 查看网卡信息`
|
|
||||||
shell `./bin/ice.bin tcp.host` with echo
|
|
||||||
|
|
||||||
spark `nfs.dir 查看目录列表`
|
|
||||||
shell `./bin/ice.bin nfs.dir` with echo
|
|
||||||
|
|
||||||
spark `cli.system 执行本机命令`
|
|
||||||
shell `./bin/ice.bin cli.system pwd` with echo
|
|
@ -1,77 +0,0 @@
|
|||||||
title "网页交互"
|
|
||||||
spark `Contexts 提供了网页接口,所有的软件工具,都可以通过网页来使用。`
|
|
||||||
|
|
||||||
chapter "启动服务"
|
|
||||||
spark `为了更形象的解说软件界面,本文会引用本机 <a>http://localhost:9020</a> 提供的服务,来展示界面。
|
|
||||||
所以建议先按本章节的说明,下载并启动 Contexts 后,再查看后续章节的文档。
|
|
||||||
通过网页使用 Contexts 前,需要先启动 web 服务器。Contexts 自带了多种启动方式。`
|
|
||||||
|
|
||||||
spark `使用 serve 命令,可以直接启动服务。`
|
|
||||||
shell `./bin/ice.bin serve start`
|
|
||||||
|
|
||||||
spark `如果需要进程常驻,可以使用守护命令 forever。forever 启动守护进程后,才会启动服务进程,并且会一直等待服务进程结束,当检测到服务进程是异常结束的,则会重新启动服务进程。`
|
|
||||||
shell `./bin/ice.bin forever start`
|
|
||||||
|
|
||||||
spark `无论哪种方式启动,默认的服务端口都是 9020,打开 <a>http://localhost:9020</a> 即可通过网页使用所有的软件工具。`
|
|
||||||
spark `服务启动后,会在终端上,启动一个交互式的 shell,Contexts 的所有软件工具,都可以在这个 shell 上,以命令的方式使用。`
|
|
||||||
|
|
||||||
chapter "登录认证"
|
|
||||||
spark `如果是在容器或远程服务器上启动的服务,访问时都是需要登录认证的。
|
|
||||||
或者是本机启动的服务,但在其它设备上访问此服务,也是需要登录认证的。`
|
|
||||||
spark `前端网页在检测到没有登录,会展示一个登录页面。可扫码登录,也可以在后台执行命令进行授权登录。
|
|
||||||
初始用户只能在后台用命令授权登录,复制二维码下面的授权命令,在后台服务启动的 shell 中执行一下,即可授权登录。`
|
|
||||||
spark `Contexts 是一个工具系统,使用的场景是面向的个人或小团队使用,所以框架并没有提供用户注册的功能。
|
|
||||||
如果需要多人登录本系统,已经登录的用户,可以通过 aaa.offser 命令发送邀请链接,被邀请人就可以获取登录权限。`
|
|
||||||
|
|
||||||
chapter "使用方式"
|
|
||||||
spark `为了更加方便的使用这些软件工具,Contexts 自带了一个后台管理系统。
|
|
||||||
后台管理系统的界面从上到下,依次由菜单栏、导航栏、工作区、状态栏组成,另外搜索栏,会在需要时,悬浮在工作区之上。
|
|
||||||
所有的软件工具,既可以添加到导航栏里,通过结构化的方式组织起来,也可以通过搜索框被快速查找出来,还可以通过 URL 地址,直接在单独的网页中使用。`
|
|
||||||
|
|
||||||
section "导航式"
|
|
||||||
spark `Contexts 启动后,可直接访问 <a>http://localhost:9020/chat/portal/</a>,打开后台管理系统。
|
|
||||||
后台管理系统导航栏的内容,都是在 src/main.js 文件中定义的。如需自定义导航栏的内容,直接修改此文件即可。
|
|
||||||
Contexts 也提供了界面添加功能,点击创建后,依次添加群组、添加应用、添加工具,即可将任意的软件工具添加到导航栏。`
|
|
||||||
iframe "http://localhost:9020"
|
|
||||||
|
|
||||||
section "搜索式"
|
|
||||||
spark `默认的后台管理系统,会提供一个搜索框,所有的软件工具都可以通过搜索,直接在结果栏中展示,即可实现快速使用此工具。
|
|
||||||
当结果栏里,只有一条结果,则会直接创建此工具的界面。如果结果栏里,有多条结果,则需要手动选择需要打开的工具。`
|
|
||||||
iframe "http://localhost:9020?_search=tcp.host"
|
|
||||||
|
|
||||||
section "命令式"
|
|
||||||
spark `所有的软件工具都可以通过 URL 直接访问使用,例如工具 web.team.plan 的 URL 是 <a>http://localhost:9020/chat/cmd/web.team.plan</a>。`
|
|
||||||
spark demo plan
|
|
||||||
spark `有些软件工具在注册时,会注册一个全局的短名,如 web.team.plan 是全名,plan 就是注册的短名,在使用时,两个完全等价,如链接地址
|
|
||||||
<a>http://localhost:9020/chat/cmd/web.team.plan</a> 与 <a>http://localhost:9020/chat/cmd/plan</a> 是一样的。
|
|
||||||
需要注意的是,并不是所有的工具在注册时,都会注册短名。只有那些比较基础、比较通用的工具,才需要注册短名。`
|
|
||||||
|
|
||||||
chapter "标准界面"
|
|
||||||
spark `在 Contexts 中,所有的软件工具,都是使用同一前端框架,自动生成的前端界面。
|
|
||||||
如果默认的前端界面,无法满足需求,可以灵活的配置,指定任意的前端脚本,甚至还可以随时编写前端代码,自行定义界面。`
|
|
||||||
spark `一个标准的工具界面,从上到下依次为标题栏、参数栏、工具栏、工作区、状态栏。
|
|
||||||
有时为了最大的展示工作区,往往会将标题栏、参数栏、工具栏,放在同一行。`
|
|
||||||
spark demo host
|
|
||||||
|
|
||||||
section "标题栏"
|
|
||||||
spark `标题栏,由工具名与中文名组成。当系统切换成英文版时,会只显示工具名。`
|
|
||||||
spark `点击标题栏,会打开一个菜单,对工具界面进行更详情的控制,如切换全屏、切换浮动、打开单独的网页、生成共享链接等。`
|
|
||||||
|
|
||||||
section "参数栏"
|
|
||||||
spark `在参数栏中,会有输入框、选择框、按钮等输入控件。这些参数,会在刷新数据时直接传给后端,从而后端根据这些参数,返回不同的数据,然后刷新工作区。`
|
|
||||||
|
|
||||||
section "工具栏"
|
|
||||||
spark `工具栏与参数栏很相似,都有一样的输入控件,位置也相邻,都在工作区上面。但区别是,工具栏更偏向于前端交互,不一定会向后端发送请求。但参数栏的交互一般都会发送请求,然后刷新工作区。`
|
|
||||||
|
|
||||||
section "状态栏"
|
|
||||||
spark `状态栏,在工作区下方,由key 和 value 组成,一般都是一些状态信息、统计信息等。`
|
|
||||||
|
|
||||||
section "工作区"
|
|
||||||
spark `工作区,在正中间,占据最大的空间。默认的会以表格的形式展示数据,最后一列一般是当前行的操作按钮。点击某列的表头,会切换当前列的排序方式。`
|
|
||||||
|
|
||||||
chapter "操作表格"
|
|
||||||
section "切换视图"
|
|
||||||
spark `如果工具界面的输出是一个表格,当点击某个单元格时,如果此单元格的表头和参数栏的名称一样,则会将此单元格的内容作为参数,复制到输入控件上,并刷新数据。`
|
|
||||||
|
|
||||||
section "编辑字段"
|
|
||||||
spark `直接双击单元格,即可编辑数据,点击回车即可保存更改。`
|
|
@ -1,39 +0,0 @@
|
|||||||
title "启动参数"
|
|
||||||
spark `Contexts 在命令行终端中,有三种使用方式,命令式、交互式、守护式。`
|
|
||||||
|
|
||||||
chapter `命令式`
|
|
||||||
spark `命令式用来执行一次性命令`
|
|
||||||
shell `./bin/ice.bin tcp.host` with echo
|
|
||||||
|
|
||||||
chapter `交互式`
|
|
||||||
spark `交互式,会启动一个常驻功能和一个交互shell,可以多次执行命令。`
|
|
||||||
|
|
||||||
section `启动服务`
|
|
||||||
shell `./bin/ice.bin serve start dev "" port 9030 nodename demo`
|
|
||||||
spark `serve 启动服务的参数如下`
|
|
||||||
order `
|
|
||||||
dev 指定上级服务节点。
|
|
||||||
proto 指定服务启动的协议 http 或 https
|
|
||||||
host 指定服务启动时绑定的本机 IP 地址
|
|
||||||
port 指定服务启动的端口号,默认 9020
|
|
||||||
nodename 指定本机节点名
|
|
||||||
username 指定根用户名
|
|
||||||
usernick 指定根用户的昵称
|
|
||||||
`
|
|
||||||
|
|
||||||
section `启动空间`
|
|
||||||
shell `./bin/ice.bin space dial dev "http://localhost:9020" name demo`
|
|
||||||
order `
|
|
||||||
dev 指定服务节点。
|
|
||||||
name 指定空间名。
|
|
||||||
`
|
|
||||||
|
|
||||||
chapter `守护式`
|
|
||||||
spark `将进程意外结束,或是编译时接收到信号,交互进程会直接结束。
|
|
||||||
为了自动重启,开发了 forever 命令。forever 可以用来启动任何进程,当进程停止时的返回 0,forever 也会退出,但返回其它值时,会重新拉起进程。`
|
|
||||||
|
|
||||||
section `启动服务`
|
|
||||||
shell `./bin/ice.bin forever start serve`
|
|
||||||
|
|
||||||
section `启动空间`
|
|
||||||
shell `./bin/ice.bin forever start space dev "http://localhost:9020"`
|
|
@ -1 +0,0 @@
|
|||||||
title "config"
|
|
@ -1,138 +0,0 @@
|
|||||||
title "目录结构"
|
|
||||||
spark `Contexts 运行时常用的目录与文件如下。`
|
|
||||||
chain `
|
|
||||||
contexts
|
|
||||||
src
|
|
||||||
main.go
|
|
||||||
main.js
|
|
||||||
main.shy
|
|
||||||
version.go
|
|
||||||
binpack.go
|
|
||||||
template/
|
|
||||||
document/
|
|
||||||
etc
|
|
||||||
init.shy
|
|
||||||
local.shy
|
|
||||||
exit.shy
|
|
||||||
bin
|
|
||||||
ice.bin
|
|
||||||
var
|
|
||||||
conf
|
|
||||||
data
|
|
||||||
file
|
|
||||||
log
|
|
||||||
tmp
|
|
||||||
proxy
|
|
||||||
usr
|
|
||||||
publish
|
|
||||||
install
|
|
||||||
local
|
|
||||||
export
|
|
||||||
daemon
|
|
||||||
image
|
|
||||||
repos
|
|
||||||
work
|
|
||||||
node_modules
|
|
||||||
`
|
|
||||||
|
|
||||||
chapter "源码目录 src/"
|
|
||||||
spark `所有的代码与文档,都保存这个目录里。`
|
|
||||||
|
|
||||||
section "main.go"
|
|
||||||
spark `main.go 是主程序的入口文件,在 Contexts 的项目中,所有功能都是模块化的,通过 init 函数隐式注册,所以只需要在 main.go 文件中添加一行 import 即可引入模块。
|
|
||||||
所以 main.go 只剩下一行代码<code>ice.Run()</code>。`
|
|
||||||
spark inner src/main.go
|
|
||||||
|
|
||||||
section "main.js"
|
|
||||||
spark `main.js 是前端的入口文件,前端的代码也是全部模块化,并且是后端驱动。所以 main.js 只需要定义导航栏的功能列表即可。现在只支持两级目录。支持图标,可自行引入图标库。`
|
|
||||||
spark inner src/main.js
|
|
||||||
|
|
||||||
section "main.shy"
|
|
||||||
spark `main.shy 是文档入口,文档工具默认打开的文件。Contexts 对笔记文档提供了非常多的支持,因为笔记文档是用户使用最频率也是最方便的工具。`
|
|
||||||
spark inner src/main.shy
|
|
||||||
|
|
||||||
section "version.go"
|
|
||||||
spark `version.go 是项目源码及编译相关的信息。`
|
|
||||||
spark inner src/version.go
|
|
||||||
|
|
||||||
section "binpack.go"
|
|
||||||
spark `binpack.go 是打包文件,在编译构建时,Contexts 会把 js、css、shy 等文件,直接打包进执行程序中。
|
|
||||||
进程运行时,直接在内存里构建了一个文件系统。`
|
|
||||||
|
|
||||||
section "template/"
|
|
||||||
spark `template/ 是模板目录,比如生成网页、生成笔记时,会用到很多格式化的文本,用户可以随时修改这些模板文件,满足定制化的需要。`
|
|
||||||
|
|
||||||
section "document/"
|
|
||||||
spark `document/ 是文档目录,官网展示的页面与文档,都保存在这里,可以随时修改。`
|
|
||||||
spark `其中 src/document/index.shy 定义标题栏。src/document/xxx/index.shy 定义导航栏,其它文件都是普通的文档文件。`
|
|
||||||
|
|
||||||
chapter "配置目录 etc/"
|
|
||||||
spark `Contexts 在运行中用到的配置文件都保存在这个目录。`
|
|
||||||
|
|
||||||
section "init.shy"
|
|
||||||
spark `init.shy 是 Contexts 的启动脚本。一些定制化的配置可以直接添加到这个文件中。如权限管理、事件触发、桌面定制、编译配置等`
|
|
||||||
|
|
||||||
section "local.shy"
|
|
||||||
spark `etc/ 目录中的其它配置文件,都会打包进程序文件中向外发布。只有 local.shy 会被忽略,所以如果配置中有密码之类的敏感信息,可以保存在这个文件中。`
|
|
||||||
|
|
||||||
section "exit.shy"
|
|
||||||
spark `exit.shy 是 Contexts 在服务停止前,执行的脚本,如一些运行数据的需要保存。`
|
|
||||||
|
|
||||||
chapter "程序目录 bin/"
|
|
||||||
spark `bin/ice.bin 就是 Contexts 的程序文件,ice 是 icebergs 的缩写,因为后端框架叫冰山架,寓意是后端功能非常丰富庞大,但平时只能看到冰山一角。`
|
|
||||||
|
|
||||||
chapter "数据目录 var/"
|
|
||||||
section "conf/"
|
|
||||||
spark `Contexts 实现了一种内存版的数据库,每个工具,都会自动创建配置管理与数据存储,数据的读写、保存、维护全部托管给框架,不需要开发者专门去注意。`
|
|
||||||
spark `在服务进程退出时,会将内存版的数据库中的所有数据,都会保存到这个目录。在服务重新启动时,会再加载到内存。`
|
|
||||||
|
|
||||||
section "data/"
|
|
||||||
spark `Contexts 数据库的数据默认是在内存中,但数据量超过一定大小时,将一部分不常用的数据保存磁盘中的 ./var/data/ 目录里,当这些数据被访问时,会直接读写磁盘。`
|
|
||||||
|
|
||||||
section "file/"
|
|
||||||
spark `有些文件类的数据,大小超过512B,会直接保存到这个目录里,在内存里只保存一个文件名。`
|
|
||||||
|
|
||||||
section "log/"
|
|
||||||
spark `log/ 日志文件的目录`
|
|
||||||
order `
|
|
||||||
bench.log 运行日志
|
|
||||||
error.log 错误日志
|
|
||||||
debug.log 调试日志
|
|
||||||
watch.log 监控日志
|
|
||||||
boot.log 启动日志
|
|
||||||
ice.pid 进程ID
|
|
||||||
`
|
|
||||||
|
|
||||||
section "tmp/"
|
|
||||||
spark `tmp/ 临时目录`
|
|
||||||
|
|
||||||
section "proxy/"
|
|
||||||
spark `proxy/ 代理目录,当通过网页访问子空间或是子设备时,会用到一些文件,它们都会被缓存到这个目录里。`
|
|
||||||
|
|
||||||
chapter "资源目录 usr/"
|
|
||||||
section "publish/"
|
|
||||||
spark `发布资源,这个目录下的所有文件,都是对外公开的文件,如发布的程序文件和配置文件,用户可以自由的下载。`
|
|
||||||
|
|
||||||
section "install/"
|
|
||||||
spark `安装一些软件与工具的目录。`
|
|
||||||
|
|
||||||
section "local/"
|
|
||||||
spark `local 就是私有的一些数据,在数据读写时会有更多的权限检查,以保证用户的数据安全。`
|
|
||||||
|
|
||||||
section "local/export/"
|
|
||||||
spark `local/export/ 就是配置和数据导出的目录,因为运行时的数据量比较大,当有一些重要的数据需要备份或是和代码一起提交,可导出到这个目录。`
|
|
||||||
|
|
||||||
section "local/daemon/"
|
|
||||||
spark `启动的后台进程,以端口号作为目录名。`
|
|
||||||
|
|
||||||
section "local/image/"
|
|
||||||
spark `图片视频等多媒体文件。`
|
|
||||||
|
|
||||||
section "local/repos/"
|
|
||||||
spark `Contexts 自带了 Git-Server 的功能,可以直接提供代码仓库的服务,所有的仓库代码都保存到这个目录。`
|
|
||||||
|
|
||||||
section "local/work/"
|
|
||||||
spark `子空间的目录,Contexts 创建的所有空间都在这个目录。`
|
|
||||||
|
|
||||||
section "node_modules/"
|
|
||||||
spark `Contexts 的前端代码,用到的外部依赖库,会自动下载到这个目录。`
|
|
@ -1,11 +0,0 @@
|
|||||||
title "环境变量"
|
|
||||||
spark `Contexts 也定义了一些环境变量。`
|
|
||||||
order `
|
|
||||||
ctx_shy
|
|
||||||
ctx_com
|
|
||||||
ctx_dev
|
|
||||||
ctx_pod
|
|
||||||
ctx_ops
|
|
||||||
ctx_pid
|
|
||||||
ctx_log
|
|
||||||
`
|
|
@ -1,26 +0,0 @@
|
|||||||
title "启动配置"
|
|
||||||
spark `Contexts 的启动配置都存保存在 etc/ 目录中,etc/init.shy 是启动配置,
|
|
||||||
etc/local.shy 是启动配置拆分出来的一个文件,只存放一些关于密码类或本地的一些私有化配置,代码提交时会忽略这个文件。`
|
|
||||||
|
|
||||||
chapter "配置语法"
|
|
||||||
spark `和文档文件格式完全一样,也是命令式语法,都是命令加参数。`
|
|
||||||
spark `为了减少重复的命令前缀,可以用波浪线 ~ 加上模块名,切换模块,此后的命令,只用输入命令名即可。`
|
|
||||||
|
|
||||||
section "source"
|
|
||||||
spark `source 命令可以用来引入其它的配置文件,当配置文件比较大时,可以拆分成多个文件,用 source 引入即可。`
|
|
||||||
|
|
||||||
section "config"
|
|
||||||
spark `config 命令是通用的配置操作命令,可以用来读写所有工具的配置。`
|
|
||||||
|
|
||||||
chapter "常用配置"
|
|
||||||
section "event"
|
|
||||||
spark `event 是事件类的命令,监听某个事件然后执行指定的命令。如服务启动时、空间创建时、用户注册时等事件。`
|
|
||||||
|
|
||||||
section "role"
|
|
||||||
spark `role 是角色管理,什么角色拥有什么权限,都可以在启动时配置。`
|
|
||||||
|
|
||||||
section "binpack insert"
|
|
||||||
spark `binpack insert 是后端构建时,需要将哪些文件打包进 bin 文件中。`
|
|
||||||
|
|
||||||
section "webpack insert"
|
|
||||||
spark `webpack insert 是前端打包构建时,需要将哪些文件打包进 html 文件中。`
|
|
@ -1,3 +0,0 @@
|
|||||||
title "日志文件"
|
|
||||||
|
|
||||||
spark `Contexts 日志都保存在 ./log/ 目录下。`
|
|
@ -1,5 +0,0 @@
|
|||||||
title "进程控制"
|
|
||||||
spark `Contexts 可以通过信号控制进程。`
|
|
||||||
spark `在终端启动 Contexts 后,<code>Ctrl + C</code> 重启服务进程。<code>Ctrl + \\</code> 退出服务进程。`
|
|
||||||
spark `执行 make 命令时,会发送 INT 信号,重启进程。`
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
title "资源目录"
|
|
||||||
spark `usr`
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
|||||||
title "数据目录"
|
|
||||||
spark `var`
|
|
@ -1 +0,0 @@
|
|||||||
title "共享链接"
|
|
@ -1,14 +0,0 @@
|
|||||||
chain `
|
|
||||||
contexts
|
|
||||||
icebergs
|
|
||||||
base
|
|
||||||
core
|
|
||||||
misc
|
|
||||||
toolkits
|
|
||||||
volcanos
|
|
||||||
lib
|
|
||||||
page
|
|
||||||
panel
|
|
||||||
plugin
|
|
||||||
`
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
image background.jpg
|
|
||||||
video some.mov
|
|
||||||
audio some.mp3
|
|
@ -1,4 +0,0 @@
|
|||||||
label `
|
|
||||||
linux nginx docker redis mysql
|
|
||||||
bash git golang vim tmux
|
|
||||||
`
|
|
@ -1,5 +0,0 @@
|
|||||||
order `
|
|
||||||
icebergs
|
|
||||||
volcanos
|
|
||||||
intshell
|
|
||||||
`
|
|
@ -1,5 +0,0 @@
|
|||||||
refer `
|
|
||||||
首页 http://localhost:9020
|
|
||||||
官网 http://localhost:9020/wiki/portal/
|
|
||||||
后台 http://localhost:9020/chat/portal/
|
|
||||||
`
|
|
@ -1,6 +0,0 @@
|
|||||||
table `
|
|
||||||
命令 作用
|
|
||||||
order 普通列表
|
|
||||||
refer 引用列表
|
|
||||||
table 普通表格
|
|
||||||
`
|
|
@ -1,21 +0,0 @@
|
|||||||
title "应用桌面"
|
|
||||||
spark `Contexts 是一个工具系统,内置了很多软件工具。这些工具可以像本机电脑桌面一样,用图标与窗口的界面,来使用所有的软件工具。
|
|
||||||
web.chat.macos.desktop 命令就是 Contexts 的电脑桌面。`
|
|
||||||
spark demo web.chat.macos.desktop style output
|
|
||||||
|
|
||||||
chapter "桌面列表"
|
|
||||||
spark `Contexts 支持多桌面,可以创建出任意多个桌面。在桌面的左上角,点击 + 号,就可以创建一个新桌面,每个桌面上可以打开不同的软件工具。
|
|
||||||
在顶部的菜单栏里就是桌面列表,每个桌面都可以自定义标题。`
|
|
||||||
|
|
||||||
chapter "应用列表"
|
|
||||||
spark `在桌面的底部,是 dock 工具栏,其中第一个图标是 finder 工具,点击打开,即可查看所有应用列表。`
|
|
||||||
spark `在 Contexts 中,每个工作空间,都有自己的电脑桌面与应用列表,通过配置文件,可以将任意的工具添加到应用列表中。
|
|
||||||
应用列表中的所有应用,可以随时添加到桌面上与工具栏中。`
|
|
||||||
|
|
||||||
chapter "会话管理"
|
|
||||||
spark `Contexts 的电脑桌面,支持会话管理。可以将桌面列表、已经打开的应用的窗口状态,保存到一个命名的会话中。
|
|
||||||
这样,可以在之后,重新打开会话,恢复所有桌面与窗口的状态。`
|
|
||||||
|
|
||||||
chapter "使用方式"
|
|
||||||
spark `同样的,电脑桌面 web.chat.macos.desktop,只是 Contexts 的一个小工具,可以添加到管理系统的导航栏中,也可以在搜索框中直接查找,甚于可以内嵌在任何其它工具中使用。`
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
|||||||
title "思维导图"
|
|
||||||
spark `作为一个功能完备的工具系统,画图工具当然也是必不可少的。web.wiki.draw 就是 Contexts 的画图工具。
|
|
||||||
同样的,画图工具中的每个图形元素,都可以关联一个软件工具,这样就可以用任意的逻辑,将软件工具组织起来,比如做成流水线、电路图等。`
|
|
||||||
spark `Contexts 所有软件工具,都可以像面向对象编程一样,被直接继承与扩展。其中趋势图与框架图,就是在这个画图工具的基础上,添加了一些自己的功能逻辑。`
|
|
||||||
spark demo draw
|
|
@ -1,22 +0,0 @@
|
|||||||
title "收藏夹"
|
|
||||||
spark `在工作过程中,经常会用到一些文本、链接、图片等,需要不断的来回复制与粘贴。为了更加方便的管理这些常用数据,可以使用 web.chat.favor 命令。`
|
|
||||||
spark demo favor
|
|
||||||
|
|
||||||
chapter "添加数据"
|
|
||||||
section "创建"
|
|
||||||
spark `在工具栏,点击创建,依次输入参数 type、name、text,然后提交即可。`
|
|
||||||
|
|
||||||
section "上传"
|
|
||||||
spark `web.chat.favor 还支持上传文件。`
|
|
||||||
|
|
||||||
section "粘贴"
|
|
||||||
spark `web.chat.favor 还支持从粘贴板直接获取数据。`
|
|
||||||
|
|
||||||
section "截图"
|
|
||||||
spark `web.chat.favor 还支持截图。`
|
|
||||||
|
|
||||||
section "录屏"
|
|
||||||
spark `web.chat.favor 还支持录屏。`
|
|
||||||
|
|
||||||
chapter "查看详情"
|
|
||||||
spark `在 web.chat.favor 中的数据是有多种格式的,如果是图片,可以直接预览。可以在最后一例中,点击按键进行操作。也可以点击某一行的 hash 字段,即可直接切换视图到详情。`
|
|
@ -1,65 +0,0 @@
|
|||||||
title "笔记文档"
|
|
||||||
brief `web.wiki.word 是 Contexts 用来管理笔记与文档的工具,Contexts 的文档以 .shy 作为文件格式的后缀。
|
|
||||||
语法也非常简单,就是命令加参数,像命令行一样使用。其中命令就是 Contexts 中的所有的工具名。
|
|
||||||
所以 Contexts 中的所有工具都可以在文档中直接使用。`
|
|
||||||
spark `包括 Contexts 的官网 web.wiki.portal,也只是在 web.wiki.word 上包装了一个布局和路由而已。
|
|
||||||
官网的所有内容也是用 .shy 文档来保存的,其中所有的内容在 web.wiki.word 中也一样显示。`
|
|
||||||
spark `Contexts 的文档不需要单独存放,直接和代码保存在一起,都在 ./src/ 目录下,
|
|
||||||
Contexts 在构建时,会根据代码结构,将关联的文档打包进 bin 文件中,以便在运行时随时查看。`
|
|
||||||
|
|
||||||
chapter "使用方式"
|
|
||||||
spark `同样的,web.wiki.word 工具,也是可以在后台管理系统的导航栏中、在搜索栏中、在单独的网页中都能使用,
|
|
||||||
甚至可以被任何其它的工具嵌套使用,如被 web.wiki.portal 嵌套,比如在编辑器中编辑文档时,预览区就是插入的 web.wiki.word。`
|
|
||||||
spark `在 web.wiki.word 的参数栏中,第一个输入框,是文档的文件名,输入需要查看的文档的文件名,即可查看此文档。
|
|
||||||
在命令网页中,如下添加参数 path 即可指定文档的文件名,在单独的网页中查看指定的文档。`
|
|
||||||
spark `<a>http://localhost:9020/chat/cmd/word?path=src/document/started/using/note.shy</a>`
|
|
||||||
spark `Contexts 的笔记文档,可以直接生成网站,也可以像 ppt 一样,可以按章节一页页的播放。`
|
|
||||||
|
|
||||||
chapter "常用命令"
|
|
||||||
spark `其中参数有空格或其它特殊字符,可以加引号转义,如单引号、双引号、反引号,其中反引号中的文字可以跨多行。`
|
|
||||||
|
|
||||||
section "文字类"
|
|
||||||
spark `文字类的命令很简单,常用的就 title、chapter、section、brief、spark。`
|
|
||||||
spark inner `
|
|
||||||
title "文章标题"
|
|
||||||
chapter "章节标题"
|
|
||||||
section "分节标题"
|
|
||||||
brief "摘要文字"
|
|
||||||
spark "段落文字"
|
|
||||||
` args "src/ main.shy"
|
|
||||||
|
|
||||||
spark `spark 命令还支持子命令,如 title、inner、shell、button 等,
|
|
||||||
如需其它文字格式,可自行添加 spark 的子命令,只需要在 <code>./src/template/web.wiki.spark/</code> 目录下添加同名的模板文件即可。`
|
|
||||||
spark inner `
|
|
||||||
spark inner "代码文字"
|
|
||||||
spark shell "命令文字"
|
|
||||||
shell "命令文字"
|
|
||||||
` args "src/ main.shy"
|
|
||||||
spark `其中 shell 命令并不是一个单独的命令,只是 spark shell 的别名而已。还有 chapter 也是 title chapter 的别名,section 也是 title section 别名。`
|
|
||||||
|
|
||||||
section "数据类"
|
|
||||||
spark `refer 命令,引用列表`
|
|
||||||
spark inner demo/refer.shy
|
|
||||||
source demo/refer.shy
|
|
||||||
|
|
||||||
spark `order 命令,普通列表`
|
|
||||||
spark inner demo/order.shy
|
|
||||||
source demo/order.shy
|
|
||||||
|
|
||||||
spark `table 命令,普通表格`
|
|
||||||
spark inner demo/table.shy
|
|
||||||
source demo/table.shy
|
|
||||||
|
|
||||||
section "绘图类"
|
|
||||||
spark `label 命令,绘制标签。`
|
|
||||||
spark inner demo/label.shy
|
|
||||||
source demo/label.shy
|
|
||||||
|
|
||||||
spark `chain 命令,绘制结构图,每一行是一个节点,用缩进代表层级。`
|
|
||||||
spark inner demo/chain.shy
|
|
||||||
source demo/chain.shy
|
|
||||||
|
|
||||||
section "影音类"
|
|
||||||
spark `影音类的文件,存放在 <code>./usr/local/image/</code> 目录下。当然参数也可以是一个完整的 URL 地址,直接引用外部的资源文件。`
|
|
||||||
spark inner demo/image.shy
|
|
||||||
source demo/image.shy
|
|
@ -1,27 +0,0 @@
|
|||||||
title "任务计划"
|
|
||||||
spark `时间与任务的管理,也是工作中很重要的内容。
|
|
||||||
web.team.plan 是 Contexts 用来管理任务与计划的工具,此外在状态栏中附加了另外三个工具 web.team.todo、web.team.task、web.team.epic。`
|
|
||||||
spark demo plan
|
|
||||||
|
|
||||||
chapter "工具界面"
|
|
||||||
section "时间跨度"
|
|
||||||
spark `web.team.plan 提供了日视图、周视图、月视图、年视图、长视图等,不同的时间跨度来展示任务列表。`
|
|
||||||
|
|
||||||
section "起始时间"
|
|
||||||
spark `参数栏的第二个参数,就是起始时间,用来指定显示什么时间的任务。例如时间跨度是周视图时,就可以切换上一周、下一周,如果时间跨度是月视图,就可以切换上一月、下一月。`
|
|
||||||
|
|
||||||
section "任务过滤"
|
|
||||||
spark `每个任务都有优先级、完成度、考核度等属性,所以可以在视图上进行过滤,只显示自己需要关心的任务。`
|
|
||||||
|
|
||||||
chapter "任务管理"
|
|
||||||
section "创建任务"
|
|
||||||
spark `双击时间的单元格,即可打开创建任务的对话框。其中 zone 与 name 是必选参数,指定分类与名称。然后点击提交,即可创建一个新任务。`
|
|
||||||
|
|
||||||
section "任务详情"
|
|
||||||
spark `单击任务,在任务表的右侧,即可显示出任务详情。`
|
|
||||||
|
|
||||||
chapter "关联工具"
|
|
||||||
spark `web.team.plan 工具,看上去功能很简单,但却不简单,因为在 Contexts 中,所有的工具,都可以嵌套任何其它工具,甚至子空间、子设备中的所有工具。
|
|
||||||
给任何一个任务,都可以绑定一个工具。在详情中,点击插件,输入工具名与参数,即可在任务选中时,在时间表下面显示工具,可以直接使用。
|
|
||||||
所以对于 web.team.plan 来说,它就是一个时间的框架,用时间的维度,将所有的工具显示在时间表中。`
|
|
||||||
spark `同样适用于 Contexts 系统中其它所有工具,每一个工具都以自己的数据逻辑,将其它所有的工具、空间、设备,组织在一起。所以每个工具,都看成是一个操作系统。`
|
|
@ -1,45 +0,0 @@
|
|||||||
title "代码库与代码源"
|
|
||||||
spark `Contexts 为了实现功能的完备,代码库和代码源当然是必不可少的功能。其中代码库是指 Git-Client,代码源是指 Git-Server。`
|
|
||||||
spark `Contexts 在服务节点启动时,默认的就已经启动了 Git-Server 的服务,支持代码源的创建、上传、下载等功能。
|
|
||||||
所以 Contexts 的所有代码,都是存放在 Contexts 启动的服务器上。如前端框架 <a>https://shylinux.com/x/volcanos.git</a>,后端框架 <a>https://shylinux.com/x/icebergs.git</a>。`
|
|
||||||
|
|
||||||
chapter "代码源管理"
|
|
||||||
spark demo web.code.git.service
|
|
||||||
section "代码源目录"
|
|
||||||
spark `Contexts 的代码源,都保存在 ./usr/local/repos/ 目录下。`
|
|
||||||
|
|
||||||
section "代码源权限"
|
|
||||||
spark `默认的下载代码是不需要权限,所有人都可以下载代码。
|
|
||||||
但上传代码需要权限的,需要用 web.code.git.token 生成令牌,并保存到客户端的本地。`
|
|
||||||
|
|
||||||
section "代码源地址"
|
|
||||||
spark `当服务节点启动后,就可以通过 <a>http://localhost:9020/x/demo</a> 来上传下载代码了,demo 可以替换成任意的项目名。`
|
|
||||||
shell `
|
|
||||||
mkdir demo; cd demo
|
|
||||||
git init
|
|
||||||
git remote add origin http://localhost:9020/x/demo
|
|
||||||
git add README.md
|
|
||||||
git commit -am "add init"
|
|
||||||
git push
|
|
||||||
`
|
|
||||||
|
|
||||||
chapter "代码库管理"
|
|
||||||
spark `代码库管理,除了可以管理当前项目的代码库,还可以用来管理依赖库的代码。如 Contexts 项目,就用到了几个依赖库。`
|
|
||||||
spark demo web.code.git.repos
|
|
||||||
|
|
||||||
section "下载代码"
|
|
||||||
spark `点击工具栏中的下载按键,即可批量下载,将所有的代码库都下载一遍。`
|
|
||||||
|
|
||||||
section "上传代码"
|
|
||||||
spark `点击工具栏中的上传按键,即可批量上传,将所有的代码库都上传一遍。`
|
|
||||||
|
|
||||||
section "代码状态"
|
|
||||||
spark `点击工具栏中的状态按键,即可遍历所有的代码库,汇总出来所有的文件变更状态,输出的界面上。这样就可以在一个界面上,同时看到所有代码库的变更。`
|
|
||||||
spark `在输出的变更信息表中,最后一列是操作按键,根据当前行的文件状态,显示不同的按键。如未知文件,会显示添加按键和删除按键,如更新的文件,会显示添加按键。`
|
|
||||||
|
|
||||||
chapter "代码库状态"
|
|
||||||
spark `web.code.git.repos 更偏向于项目列表和批量操作。为了更加方便的添加代码、提交代码,又实现了一个新的工具 web.code.git.status。`
|
|
||||||
spark demo web.code.git.status
|
|
||||||
|
|
||||||
section "代码权限"
|
|
||||||
spark `在工具栏有一个授权按键,如果当前项目的代码源也是 Contexts 启动的服务,就可以实现一键授权,从 Contexts 的代码源服务器上生成 token 并保存到本地。`
|
|
@ -1,16 +0,0 @@
|
|||||||
title "官方网站"
|
|
||||||
spark `Contexts 的官方网站,web.wiki.portal 就是用文档驱动的,使用 .shy 的文件格式,都保存在 ./src/document/ 目录下。`
|
|
||||||
|
|
||||||
chapter "目录与文件"
|
|
||||||
spark `在 ./src/document/ 目录下,有两个特别的文件。一个是 ./src/document/index.shy 用来生成标题栏。另外就是各个子目录下的 index.shy 用来生成导航栏。`
|
|
||||||
|
|
||||||
section "标题栏"
|
|
||||||
spark `./src/document/index.shy 标题栏文档的内容如下。`
|
|
||||||
spark inner src/document/index.shy
|
|
||||||
|
|
||||||
section "导航栏"
|
|
||||||
spark `./src/document/stated/index.shy 导航栏文档的内容如下。`
|
|
||||||
spark inner src/document/started/index.shy
|
|
||||||
|
|
||||||
chapter "布局与路由"
|
|
||||||
spark `标题栏的路由,会触发网页跳转。而导航栏的路由,只会刷新局部视图,并且添加了视图缓存。`
|
|
@ -1,52 +0,0 @@
|
|||||||
title "编辑器"
|
|
||||||
spark `作为一个功能完备的工具系统,编辑器当然是必不少的工具。
|
|
||||||
web.code.vimer 就是 Contexts 自带的编辑器,具有语法高亮、语法模板、语法补全、语法跳转等功能。
|
|
||||||
web.code.vimer 也是一个编辑器框架,默认已经支持 Contexts 用到的语言 Golang、Javascript、HTML、CSS、sh、shy 等,
|
|
||||||
如需其它语言,直接添加语法模块即可。Contexts 中所有的工具,都可以被当成插件,在编辑器中直接使用。`
|
|
||||||
spark demo vimer
|
|
||||||
|
|
||||||
chapter "工具界面"
|
|
||||||
spark `web.code.vimer 工具,可以在很多地方被使用,不同的地方也会有不同的界面。
|
|
||||||
如在笔记中,只需要显示文件内容,所以 web.code.vimer 只会显示工作区的文件内容,其它的工具栏都会隐藏掉。
|
|
||||||
如在单独的网页中,web.code.vimer 所有界面都会完整显示,成为一个完整的 IDE。`
|
|
||||||
spark `一个完整的界面,有左边的导航区、上面的标题区、中间的工作区、右边的预览区、下面的输出区。
|
|
||||||
在左边的导航区,会有各种子栏,如目录列表、空间列表、命令列表、插件列表等,并且可以随时添加新的功能区。点击列表项,即可打开关联的文件,
|
|
||||||
在预览区与输出区,是每种语法模块自定义的显示内容。
|
|
||||||
如 .html 文件的预览区和输出区,是一个内嵌网页,用来查看网页效果。
|
|
||||||
如 .go 文件的预览区和输出区,就是当前代码所开发功能的界面,这样就可以边写代码,边看效果。`
|
|
||||||
|
|
||||||
chapter "目录与文件"
|
|
||||||
section "界面参数"
|
|
||||||
spark `web.code.vimer 最核心的功能,当然是展示目录结构与文件内容。所以定义了三个参数 path、file、line。这样 vimer 在使用的地方,就可以通过这三个参数进行控制。
|
|
||||||
从而显示指定的目录列表与文件内容。`
|
|
||||||
|
|
||||||
section "目录列表"
|
|
||||||
spark `在左边导航区显示的目录列表,是由参数 path 指定的目录,加上代码仓库管理工具 web.code.git.repos 返回的代码仓库列表。
|
|
||||||
vimer 也实现了延时加载,默认只加载当前目录下的文件列表,只有点击仓库才会打开它的目录,才会加载此仓库下的文件列表。`
|
|
||||||
|
|
||||||
section "项目列表"
|
|
||||||
spark `在 Contexts 中,当前空间的所有的代码和文档都保存在 ./src/ 目录下,但有时会用到外部依赖库,并且根据当前的需要,去更改依赖库的代码。
|
|
||||||
比如 Contexts 刚开始只有一个代码仓库,后来随着功能不断的增加,不断的拆分出新的代码仓库,现在已经有十几个代码仓库,所以有时为了实现一个新功能,就会修改多个代码仓库。
|
|
||||||
为了管理这么多个依赖库,就可以使用 web.code.git.repos 命令,进行统一的上传、下载、提交代码等操作。这些依赖库,分别保存在 ./usr/ 目录下。`
|
|
||||||
|
|
||||||
chapter "语法与插件"
|
|
||||||
spark `vimer 在加载文件内容时,会根据文件的扩展名,自动的加载语法插件。`
|
|
||||||
|
|
||||||
chapter "预览与输出"
|
|
||||||
spark `每种语法的文件,使用方式是不一样的。所以在 vimer 里实现了一种语法引擎的框架,可加载各种语法模块,并分发各种处理事件。
|
|
||||||
每种语法模块,都可以定义当前文件的预览区与输出区如何显示。这样就可以一边写代码,一边查看输出的界面。`
|
|
||||||
order `
|
|
||||||
.shy 的语法模块,就定义了 .shy 的文件预览效果,是生成一个网页来显示文档的效果。
|
|
||||||
.go 的语法模块,就会根据文件名,查找出它生成的软件工具,在预览界面中展示此工具。
|
|
||||||
.js 的语法模块,也会根据文件名,查找出它关联的后端模块,并在预览界面中展示此工具。
|
|
||||||
.html 的语法模块,会直接用文件内容生成一个网页,展示出来。
|
|
||||||
`
|
|
||||||
|
|
||||||
chapter "模块与插件"
|
|
||||||
spark `Contexts 是一个工具系统,内置了大量的软件工具。这些工具既要完全独立,又要能和其它所有工具深度配合。这就是为什么 Contexts 要自研前后端框架。`
|
|
||||||
spark `Contexts 中的所有前端、后端的各种工具,都可以直接在编辑器中使用。但为了更好的和编辑配合起来,实现更高效的互动,在编辑器的代码添加了很多框架性的功能。
|
|
||||||
如编译时 vimer 调用编译工具 web.code.compile 执行编译后,有时会生成一些错误提示信息,这时 vimer 就会根据这些信息实现跳转的功能。
|
|
||||||
`
|
|
||||||
|
|
||||||
chapter "分屏与按键"
|
|
||||||
spark `vim 是一个非常高效且强大的编辑器,所以 Contexts 为了致敬 vim,便将自己的编辑器命名为 vimer,很多编辑器的操作,都是借鉴了 vim 的习惯。`
|
|
@ -1 +0,0 @@
|
|||||||
spark `shy@shylinux.com`
|
|
@ -1,3 +1,4 @@
|
|||||||
|
src/binpack_usr.go
|
||||||
src/binpack.go
|
src/binpack.go
|
||||||
src/version.go
|
src/version.go
|
||||||
etc/local.shy
|
etc/local.shy
|
||||||
|
@ -10,7 +10,9 @@ ish_miss_prepare_develop
|
|||||||
ish_miss_prepare_project
|
ish_miss_prepare_project
|
||||||
|
|
||||||
ish_miss_prepare_contexts
|
ish_miss_prepare_contexts
|
||||||
|
ish_miss_prepare_intshell
|
||||||
|
ish_miss_prepare_learning
|
||||||
|
ish_miss_prepare_volcanos
|
||||||
ish_miss_prepare icons
|
ish_miss_prepare icons
|
||||||
ish_miss_prepare node_modules
|
|
||||||
|
|
||||||
ish_miss_make; [ -z "$*" ] || ish_miss_serve "$@"
|
ish_miss_make; [ -z "$*" ] || ish_miss_serve "$@"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user