ice

package module
v0.3.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 1, 2021 License: MIT Imports: 22 Imported by: 40

README

icebergs

icebergs是一个应用框架,通过模块化、集群化、自动化,快速搭建起完整的个人云计算平台。

  • 使用icebergs可以将各种模块或项目集成到一起,快速开发出集中式的服务器。
  • 使用icebergs可以将各种设备自由的组合在一起,快速搭建起分布式的服务器。

0. 搭建服务

0.1 一键部署
mkdir miss; cd miss && curl -s https://shylinux.com/publish/ice.sh | sh

脚本会根据当前系统类型,自动下载程序文件ice.bin,并自动启动服务。

0.2 使用方式

终端交互

启动后的进程,像bash一样是一个可交互的shell,可以执行各种模块命令或系统命令。

网页交互

默认还会启动一个web服务,访问地址 http://localhost:9020 ,就可以通过网页进行操作。

重启服务

在终端按Ctrl+C,就可以重新启动服务。

结束服务

在终端按Ctrl+\,就可以停止服务。

0.3 使用示例

1. 项目开发

icebergs是一个应用框架,如果官方模块无法满足使用需求,还可以搜集第三方模块,自行编译程序。

如果第三方模块也无法满足使用需求,还可以自己开发模块, icebergs提供了模板,可以一键创建新模块,快速添加自己的功能模块。

1.1 部署环境

开发环境,需要提前安装好git和golang

mkdir miss; cd miss && curl -s https://shylinux.com/publish/template.sh | sh

template.sh会自动创建出项目模板,并自动编译生成程序,然后启动服务。

为了方便以后创建项目与模块。 可以将辅助脚本template.sh下载,并添加到可执行目录中。

1.2 添加第三方模块

在src/main.go文件中,就可以import任意的第三方模块, 执行一下make命令,就会重新生成ice.bin。 重新启动服务,就可以使用第三方模块了。

1.3 开发模块
template.sh tutor hello

使用之前下载的template.sh,调用tutor命令,并指定模块名称hello,就可以一键创建模块了。

在src/main.go 中import新加的模块, 执行make命令,程序编译完成后, 重启服务,就可以使用新模块了。

1.4 开发框架

如果现有的框架,无法满足需求,还可以下载框架源码自行更改。

git clone https://github.com/shylinux/icebergs usr/icebergs

修改go.mod文件,引用本地框架。

replace github.com/shylinux/icebergs => ./usr/icebergs

2 原型 type.go

2.1 msg.Detail
2.2 msg.Option
2.3 msg.Append
2.4 msg.Result
2.5 msg.Travel
2.7 msg.Conf
2.8 msg.Cmd
2.9 msg.Cap

3 框架 base.go

3.1 注册模块 Register
3.2 创建资源 Begin
3.3 加载配置 _init
3.4 启动服务 Start
3.5 保存配置 _exit
3.6 释放资源 Close

4 基础模块 base/

4.1 模块中心 base/ctx/
4.2 命令中心 base/cli/
4.3 认证中心 base/aaa/
4.4 网页中心 base/web/
4.5 词法中心 base/lex/
4.6 语法中心 base/yac/
4.7 事件中心 base/gdb/
4.8 日志中心 base/log/
4.9 网络中心 base/tcp/
4.10 文件中心 base/nfs/
4.11 终端中心 base/ssh/
4.12 数据中心 base/mdb/

5 核心模块 core/

5.1 编程中心 core/code/
5.2 文档中心 core/wiki/
5.3 聊天中心 core/chat/
5.4 团队中心 core/team/
5.5 贸易中心 core/mall/

6 其它模块 misc/

6.1 终端管理 misc/zsh/
6.1 终端管理 misc/tmux/
6.1 代码管理 misc/git/
6.1 代码管理 misc/vim/
6.1 公众号 misc/mp/
6.1 小程序 misc/wx/
6.1 浏览器 misc/chrome/
6.1 机器人 misc/lark/
6.1 开发板 misc/pi/

Documentation

Index

Constants

View Source
const (
	MOD_SP   = " "
	MOD_NL   = "\n"
	MOD_DIR  = 0750
	MOD_FILE = 0640

	MOD_CHAN = 16
	MOD_TICK = "1s"
	MOD_BUFS = 4096

	MOD_DATE = "2006-01-02"
	MOD_TIME = "2006-01-02 15:04:05"
)
View Source
const (
	VOLCANOS = "volcanos"
	ICEBERGS = "icebergs"
	INTSHELL = "intshell"
	CONTEXTS = "contexts"

	INSTALL = "install"
	REQUIRE = "require"
	PUBLISH = "publish"

	SUCCESS = "success"
	FAILURE = "failure"
	FALSE   = "false"
	TRUE    = "true"
	OK      = "ok"
)
View Source
const (
	USR_VOLCANOS = "usr/volcanos"
	USR_LEARNING = "usr/learning"
	USR_ICEBERGS = "usr/icebergs"
	USR_INTSHELL = "usr/intshell"
	USR_INSTALL  = "usr/install"
	USR_PUBLISH  = "usr/publish"

	USR_LOCAL        = "usr/local"
	USR_LOCAL_WORK   = "usr/local/work"
	USR_LOCAL_RIVER  = "usr/local/river"
	USR_LOCAL_IMAGE  = "usr/local/image"
	USR_LOCAL_EXPORT = "usr/local/export"
	USR_LOCAL_DAEMON = "usr/local/daemon"

	FAVICON  = "favicon.ico"
	PROTO_JS = "proto.js"
	FRAME_JS = "frame.js"
	INDEX_JS = "index.js"
	ORDER_JS = "order.js"
	ORDER_SH = "order.sh"
	INDEX_SH = "index.sh"

	VAR_TMP     = "var/tmp"
	VAR_RUN     = "var/run"
	VAR_LOG     = "var/log"
	VAR_CONF    = "var/conf"
	VAR_DATA    = "var/data"
	VAR_FILE    = "var/file"
	VAR_PROXY   = "var/proxy"
	VAR_TRASH   = "var/trash"
	BIN_ICE     = "bin/ice.sh"
	BIN_ICE_SH  = "bin/ice.sh"
	BIN_ICE_BIN = "bin/ice.bin"
	BIN_BOOTLOG = "bin/boot.log"
	ETC_INIT    = "etc/init.shy"
	ETC_EXIT    = "etc/exit.shy"
	ETC_MISS    = "etc/miss.sh"
	ETC_MISS_SH = "etc/miss.sh"

	SRC_MAIN    = "src/main.shy"
	SRC_MAIN_GO = "src/main.go"
	SRC_VERSION = "src/version.go"
	SRC_BINPACK = "src/binpack.go"
	MAKEFILE    = "makefile"
	GO_MOD      = "go.mod"
	GO_SUM      = "go.sum"

	CTX_DEBUG = "ctx_debug"
	CTX_DEV   = "ctx_dev"
	CTX_PID   = "ctx_pid"
	CTX_LOG   = "ctx_log"
)
View Source
const (
	MSG_DETAIL = "detail"
	MSG_OPTION = "option"
	MSG_APPEND = "append"
	MSG_RESULT = "result"

	MSG_ALIAS  = "_alias"
	MSG_SCRIPT = "_script"
	MSG_SOURCE = "_source"
	MSG_TARGET = "_target"
	MSG_HANDLE = "_handle"
	MSG_RENDER = "_render"
	MSG_OUTPUT = "_output"
	MSG_ARGS   = "_args"

	MSG_DAEMON = "_daemon"
	MSG_UPLOAD = "_upload"
	MSG_ACTION = "_action"
	MSG_STATUS = "_status"

	MSG_DISPLAY = "_display"
	MSG_PROCESS = "_process"

	MSG_CMDS   = "cmds"
	MSG_FIELDS = "fields"
	MSG_SESSID = "sessid"
	MSG_DOMAIN = "domain"
	MSG_OPTS   = "_option"

	MSG_USERIP   = "user.ip"
	MSG_USERUA   = "user.ua"
	MSG_USERWEB  = "user.web"
	MSG_USERPOD  = "user.pod"
	MSG_USERADDR = "user.addr"
	MSG_USERDATA = "user.data"
	MSG_USERNICK = "user.nick"
	MSG_USERNAME = "user.name"
	MSG_USERZONE = "user.zone"
	MSG_USERROLE = "user.role"

	MSG_TITLE = "sess.title"
	MSG_RIVER = "sess.river"
	MSG_STORM = "sess.storm"
	MSG_LOCAL = "sess.local"
	MSG_TOAST = "sess.toast"
)
View Source
const (
	RENDER_RAW      = "_raw"
	RENDER_VOID     = "_void"
	RENDER_RESULT   = "_result"
	RENDER_ANCHOR   = "_anchor"
	RENDER_BUTTON   = "_button"
	RENDER_IMAGES   = "_images"
	RENDER_VIDEOS   = "_videos"
	RENDER_QRCODE   = "_qrcode"
	RENDER_SCRIPT   = "_script"
	RENDER_TEMPLATE = "_template"
	RENDER_DOWNLOAD = "_download"
	RENDER_REDIRECT = "_redirect"
)
View Source
const (
	PROCESS_REFRESH = "_refresh"
	PROCESS_REWRITE = "_rewrite"
	PROCESS_FIELD   = "_field"
	PROCESS_INNER   = "_inner"

	PROCESS_HOLD = "_hold"
	PROCESS_BACK = "_back"
	PROCESS_GROW = "_grow"
	PROCESS_OPEN = "_open"

	FIELD_PREFIX = "_prefix"
)
View Source
const (
	// 数据
	LOG_CREATE = "create"
	LOG_REMOVE = "remove"
	LOG_MODIFY = "modify"
	LOG_INSERT = "insert"
	LOG_DELETE = "delete"
	LOG_SELECT = "select"
	LOG_EXPORT = "export"
	LOG_IMPORT = "import"

	// 状态
	LOG_BEGIN = "begin"
	LOG_START = "start"
	LOG_SERVE = "serve"
	LOG_CLOSE = "close"

	// 分类
	LOG_CMDS  = "cmds"
	LOG_AUTH  = "auth"
	LOG_SEND  = "send"
	LOG_RECV  = "recv"
	LOG_COST  = "cost"
	LOG_INFO  = "info"
	LOG_WARN  = "warn"
	LOG_ERROR = "error"
	LOG_DEBUG = "debug"
)
View Source
const (
	CTX_FOLLOW = "follow"
	CTX_STATUS = "status"
	CTX_STREAM = "stream"

	CTX_BEGIN = "begin"
	CTX_START = "start"
	CTX_SERVE = "serve"
	CTX_CLOSE = "close"

	CTX_INIT = "_init"
	CTX_EXIT = "_exit"
)
View Source
const (
	ErrWarn     = "warn: "
	ErrExists   = "exists: "
	ErrExpire   = "expire: "
	ErrNotLogin = "not login: "
	ErrNotFound = "not found: "
	ErrNotRight = "not right: "
)

Variables

View Source
var Index = &Context{Name: "ice", Help: "冰山模块",
	Caches: map[string]*Cache{
		CTX_FOLLOW: {Value: "ice"},
		CTX_STREAM: {Value: "shy"},
		CTX_STATUS: {Value: "begin"},
	},
	Configs: map[string]*Config{
		"help": {Value: map[string]interface{}{
			"index": []interface{}{
				"^_^      欢迎使用冰山框架       ^_^",
				"^_^  Welcome to Icebergs World  ^_^",
				"",
				"report: shylinuxc@gmail.com",
				"server: https://shylinux.com",
				"source: https://github.com/shylinux/icebergs",
				"",
			},
		}},
	},
	Commands: map[string]*Command{
		CTX_INIT: {Hand: func(m *Message, c *Context, cmd string, arg ...string) {
			defer m.Cost("_init ice")
			m.Travel(func(p *Context, c *Context) {
				if cmd, ok := c.Commands[CTX_INIT]; ok && p != nil {
					c.cmd(m.Spawn(c), cmd, CTX_INIT, arg...)
				}
			})
		}},
		"init": {Name: "init", Help: "启动", Hand: func(m *Message, c *Context, cmd string, arg ...string) {
			if m.target != m.target.root {
				return
			}
			m.root.Cmd(CTX_INIT)
			m.target.root.wg = &sync.WaitGroup{}
			for _, k := range kit.Split(kit.Select("gdb,log,ssh,mdb")) {
				m.Start(k)
			}
			m.Cmd("ssh.source", ETC_INIT, "init.shy", "启动配置")
			m.Cmdy(arg)
		}},
		"help": {Name: "help", Help: "帮助", Hand: func(m *Message, c *Context, cmd string, arg ...string) {
			m.Echo(strings.Join(kit.Simple(m.Confv("help", "index")), "\n"))
		}},
		"exit": {Name: "exit restart:button", Help: "结束", Hand: func(m *Message, c *Context, cmd string, arg ...string) {
			m.root.target.server.(*Frame).code = kit.Int(kit.Select("0", arg, 0))
			m.Cmd("ssh.source", ETC_EXIT, "exit.shy", "退出配置")
			m.root.Cmd(CTX_EXIT)
		}},
		CTX_EXIT: {Hand: func(m *Message, c *Context, cmd string, arg ...string) {
			defer m.Cost(CTX_EXIT)
			m.root.Travel(func(p *Context, c *Context) {
				if cmd, ok := c.Commands[CTX_EXIT]; ok && p != nil {
					m.TryCatch(m.Spawn(c), true, func(msg *Message) {
						c.cmd(msg, cmd, CTX_EXIT, arg...)
					})
				}
			})
			f := c.server.(*Frame)
			f.wait <- true
		}},
	},
}
View Source
var Info = struct {
	HostName string
	PathName string
	UserName string
	PassWord string

	NodeType string
	NodeName string
	CtxShare string
	CtxRiver string

	Make struct {
		Time     string
		Hash     string
		Remote   string
		Branch   string
		Version  string
		HostName string
		UserName string
	}

	BinPack map[string][]byte
	names   map[string]interface{}
}{
	BinPack: map[string][]byte{},
	// contains filtered or unexported fields
}
View Source
var Log func(m *Message, p, l, s string)
View Source
var Pulse = &Message{
	time: time.Now(), code: 0,
	meta: map[string][]string{},
	data: map[string]interface{}{},

	source: Index, target: Index, Hand: true,
}

Functions

func AddRender added in v0.3.8

func AddRender(key string, render func(*Message, string, ...interface{}) string)

func Display added in v0.3.8

func Display(file string, arg ...string) map[string]string

func Dump added in v0.3.5

func Dump(w io.Writer, name string, cb func(string)) bool

func MergeAction added in v0.3.8

func MergeAction(list ...map[string]*Action) map[string]*Action

func Name added in v0.2.3

func Name(name string, value interface{}) string

func Render added in v0.3.4

func Render(m *Message, cmd string, args ...interface{}) string

func Run

func Run(arg ...string) string

Types

type Action added in v0.2.3

type Action struct {
	Name string
	Help string
	List []interface{}
	Hand func(m *Message, arg ...string)
}

type Cache

type Cache struct {
	Name  string
	Help  string
	Value string
}

type Command

type Command struct {
	Name   string
	Help   string
	List   []interface{}
	Meta   map[string]interface{}
	Hand   func(m *Message, c *Context, key string, arg ...string)
	Action map[string]*Action
}

type Config

type Config struct {
	Name  string
	Help  string
	Value interface{}
}

type Context

type Context struct {
	Name string
	Help string

	Caches   map[string]*Cache
	Configs  map[string]*Config
	Commands map[string]*Command
	// contains filtered or unexported fields
}

func (*Context) Begin

func (c *Context) Begin(m *Message, arg ...string) *Context

func (*Context) Cap

func (c *Context) Cap(key string, arg ...interface{}) string

func (*Context) Close

func (c *Context) Close(m *Message, arg ...string) bool

func (*Context) Cmd added in v0.2.3

func (c *Context) Cmd(m *Message, cmd string, key string, arg ...string) *Message

func (*Context) ID

func (c *Context) ID() int32

func (*Context) Merge added in v0.2.3

func (c *Context) Merge(s *Context) *Context

func (*Context) Register

func (c *Context) Register(s *Context, x Server, name ...string) *Context

func (*Context) Server

func (c *Context) Server() Server

func (*Context) Spawn added in v0.0.18

func (c *Context) Spawn(m *Message, name string, help string, arg ...string) *Context

func (*Context) Start

func (c *Context) Start(m *Message, arg ...string) bool

type Frame

type Frame struct {
	// contains filtered or unexported fields
}

func (*Frame) Begin

func (f *Frame) Begin(m *Message, arg ...string) Server

func (*Frame) Close

func (f *Frame) Close(m *Message, arg ...string) bool

func (*Frame) Spawn

func (f *Frame) Spawn(m *Message, c *Context, arg ...string) Server

func (*Frame) Start

func (f *Frame) Start(m *Message, arg ...string) bool

type Message

type Message struct {
	Hand bool

	W http.ResponseWriter
	R *http.Request
	O io.Writer
	I io.Reader
	// contains filtered or unexported fields
}

func (*Message) Action added in v0.3.4

func (m *Message) Action(arg ...string)

func (*Message) Add

func (m *Message) Add(key string, arg ...string) *Message

func (*Message) Append

func (m *Message) Append(key string, arg ...interface{}) string

func (*Message) Appendv

func (m *Message) Appendv(key string, arg ...interface{}) []string

func (*Message) Assert

func (m *Message) Assert(arg interface{}) bool

func (*Message) Back

func (m *Message) Back(res *Message) *Message

func (*Message) CSV added in v0.0.18

func (m *Message) CSV(text string, head ...string) *Message

func (*Message) Call

func (m *Message) Call(sync bool, cb func(*Message) *Message) *Message

func (*Message) Cap

func (m *Message) Cap(arg ...interface{}) string

func (*Message) Capi added in v0.3.5

func (m *Message) Capi(key string, val ...interface{}) int

func (*Message) Capv

func (m *Message) Capv(arg ...interface{}) interface{}

func (*Message) Cmd

func (m *Message) Cmd(arg ...interface{}) *Message

func (*Message) Cmds

func (m *Message) Cmds(arg ...interface{}) *Message

func (*Message) Cmdx

func (m *Message) Cmdx(arg ...interface{}) string

func (*Message) Cmdy

func (m *Message) Cmdy(arg ...interface{}) *Message

func (*Message) Conf

func (m *Message) Conf(arg ...interface{}) string

func (*Message) Confi

func (m *Message) Confi(key string, sub string) int

func (*Message) Confm

func (m *Message) Confm(key string, chain interface{}, cbs ...interface{}) map[string]interface{}

func (*Message) Confv

func (m *Message) Confv(arg ...interface{}) (val interface{})

func (*Message) Copy

func (m *Message) Copy(msg *Message, arg ...string) *Message

func (*Message) Cost

func (m *Message) Cost(arg ...interface{}) *Message

func (*Message) Cut added in v0.3.5

func (m *Message) Cut(fields ...string) *Message

func (*Message) Debug added in v0.2.3

func (m *Message) Debug(str string, arg ...interface{})

func (*Message) Detail

func (m *Message) Detail(arg ...interface{}) string

func (*Message) Detailv

func (m *Message) Detailv(arg ...interface{}) []string

func (*Message) Done

func (m *Message) Done(b bool) bool

func (*Message) Echo

func (m *Message) Echo(str string, arg ...interface{}) *Message

func (*Message) EchoAnchor added in v0.3.2

func (m *Message) EchoAnchor(arg ...interface{}) *Message

func (*Message) EchoButton added in v0.3.2

func (m *Message) EchoButton(arg ...string) *Message

func (*Message) EchoDownload added in v0.3.8

func (m *Message) EchoDownload(arg ...interface{})

func (*Message) EchoImages added in v0.3.2

func (m *Message) EchoImages(src string, arg ...string) *Message

func (*Message) EchoQRCode added in v0.3.2

func (m *Message) EchoQRCode(text string, arg ...string) *Message

func (*Message) EchoScript added in v0.3.2

func (m *Message) EchoScript(arg ...string) *Message

func (*Message) Error

func (m *Message) Error(err bool, str string, arg ...interface{}) bool

func (*Message) Event added in v0.0.4

func (m *Message) Event(key string, arg ...string) *Message

func (*Message) Fields added in v0.3.4

func (m *Message) Fields(length int, fields ...string) string

func (*Message) Format

func (m *Message) Format(key interface{}) string

func (*Message) FormatChain added in v0.3.8

func (m *Message) FormatChain() string

func (*Message) FormatCost added in v0.3.5

func (m *Message) FormatCost() string

func (*Message) FormatMeta added in v0.3.2

func (m *Message) FormatMeta() string

func (*Message) FormatSize added in v0.3.5

func (m *Message) FormatSize() string

func (*Message) FormatStack added in v0.3.8

func (m *Message) FormatStack() string

func (*Message) Formats

func (m *Message) Formats(key string) string

func (*Message) Go added in v0.2.9

func (m *Message) Go(cb interface{}, args ...interface{}) *Message

func (*Message) GoToast added in v0.3.4

func (m *Message) GoToast(title string, cb func(toast func(string, int, int)))

func (*Message) Gos

func (m *Message) Gos(msg *Message, cb interface{}, args ...interface{}) *Message

func (*Message) Grow

func (m *Message) Grow(prefix string, chain interface{}, data interface{}) int

func (*Message) Grows

func (m *Message) Grows(prefix string, chain interface{}, match string, value string, cb interface{}) map[string]interface{}

func (*Message) Hold added in v0.0.18

func (m *Message) Hold(n int) *Message

func (*Message) Info

func (m *Message) Info(str string, arg ...interface{}) *Message

func (*Message) IsCliUA added in v0.3.4

func (m *Message) IsCliUA() bool

func (*Message) Load added in v0.0.18

func (m *Message) Load(arg ...string) *Message

func (*Message) Log

func (m *Message) Log(level string, str string, arg ...interface{}) *Message

func (*Message) Log_AUTH added in v0.2.3

func (m *Message) Log_AUTH(arg ...interface{}) *Message

func (*Message) Log_CREATE added in v0.2.3

func (m *Message) Log_CREATE(arg ...interface{}) *Message

func (*Message) Log_DELETE added in v0.2.3

func (m *Message) Log_DELETE(arg ...interface{}) *Message

func (*Message) Log_EXPORT added in v0.2.3

func (m *Message) Log_EXPORT(arg ...interface{}) *Message

func (*Message) Log_IMPORT added in v0.2.3

func (m *Message) Log_IMPORT(arg ...interface{}) *Message

func (*Message) Log_INSERT added in v0.2.3

func (m *Message) Log_INSERT(arg ...interface{}) *Message

func (*Message) Log_MODIFY added in v0.2.3

func (m *Message) Log_MODIFY(arg ...interface{}) *Message

func (*Message) Log_REMOVE added in v0.2.3

func (m *Message) Log_REMOVE(arg ...interface{}) *Message

func (*Message) Log_SELECT added in v0.2.3

func (m *Message) Log_SELECT(arg ...interface{}) *Message

func (*Message) Log_SEND added in v0.3.3

func (m *Message) Log_SEND(arg ...interface{}) *Message

func (*Message) Logs added in v0.1.21

func (m *Message) Logs(level string, arg ...interface{}) *Message

func (*Message) Option

func (m *Message) Option(key string, arg ...interface{}) string

func (*Message) OptionFields added in v0.3.4

func (m *Message) OptionFields(str ...string)

func (*Message) OptionLoad added in v0.3.5

func (m *Message) OptionLoad(file string) *Message

func (*Message) OptionPage added in v0.3.8

func (m *Message) OptionPage(arg ...string)

func (*Message) OptionSimple added in v0.3.8

func (m *Message) OptionSimple(key ...string) (res []string)

func (*Message) OptionSplit added in v0.3.8

func (m *Message) OptionSplit(fields ...string) (res []string)

func (*Message) OptionTemplate added in v0.3.8

func (m *Message) OptionTemplate() string

func (*Message) Options

func (m *Message) Options(key string, arg ...interface{}) bool

func (*Message) Optionv

func (m *Message) Optionv(key string, arg ...interface{}) interface{}

func (*Message) Parse added in v0.0.18

func (m *Message) Parse(meta string, key string, arg ...string) *Message

func (*Message) PodCmd added in v0.3.8

func (m *Message) PodCmd(arg ...interface{}) bool

func (*Message) Prefix added in v0.0.18

func (m *Message) Prefix(arg ...string) string

func (*Message) PrefixKey added in v0.3.5

func (m *Message) PrefixKey(arg ...string) string

func (*Message) Process added in v0.3.3

func (m *Message) Process(action string, arg ...interface{})

func (*Message) ProcessBack added in v0.3.4

func (m *Message) ProcessBack()

func (*Message) ProcessCommand added in v0.3.8

func (m *Message) ProcessCommand(cmd string, val []string, arg ...string)

func (*Message) ProcessCommandOpt added in v0.3.8

func (m *Message) ProcessCommandOpt(arg ...string)

func (*Message) ProcessField added in v0.3.4

func (m *Message) ProcessField(arg ...interface{})

func (*Message) ProcessHold added in v0.3.4

func (m *Message) ProcessHold()

func (*Message) ProcessInner added in v0.3.4

func (m *Message) ProcessInner()

func (*Message) ProcessRefresh added in v0.3.4

func (m *Message) ProcessRefresh(delay string)

func (*Message) ProcessRefresh300ms added in v0.3.5

func (m *Message) ProcessRefresh300ms()

func (*Message) ProcessRefresh30ms added in v0.3.5

func (m *Message) ProcessRefresh30ms()

func (*Message) ProcessRefresh3s added in v0.3.5

func (m *Message) ProcessRefresh3s()

func (*Message) ProcessRewrite added in v0.3.4

func (m *Message) ProcessRewrite(arg ...interface{})

func (*Message) Push

func (m *Message) Push(key string, value interface{}, arg ...interface{}) *Message

func (*Message) PushAction added in v0.2.4

func (m *Message) PushAction(list ...interface{})

func (*Message) PushAnchor added in v0.3.0

func (m *Message) PushAnchor(arg ...interface{})

func (*Message) PushButton added in v0.2.9

func (m *Message) PushButton(arg ...string)

func (*Message) PushDownload added in v0.3.0

func (m *Message) PushDownload(key string, arg ...interface{})

func (*Message) PushImages added in v0.3.2

func (m *Message) PushImages(key, src string, arg ...string)

func (*Message) PushPodCmd added in v0.3.2

func (m *Message) PushPodCmd(cmd string, arg ...string)

func (*Message) PushQRCode added in v0.3.2

func (m *Message) PushQRCode(key string, text string, arg ...string)

func (*Message) PushRender added in v0.2.8

func (m *Message) PushRender(key, view, name string, arg ...string) *Message

func (*Message) PushScript added in v0.3.2

func (m *Message) PushScript(arg ...string) *Message

func (*Message) PushSearch added in v0.3.2

func (m *Message) PushSearch(args ...interface{})

func (*Message) PushSearchWeb added in v0.3.2

func (m *Message) PushSearchWeb(cmd string, name string)

func (*Message) PushVideos added in v0.3.2

func (m *Message) PushVideos(key, src string, arg ...string)

func (*Message) RenameAppend added in v0.3.2

func (m *Message) RenameAppend(from, to string)

func (*Message) Render

func (m *Message) Render(cmd string, args ...interface{}) *Message

func (*Message) RenderDownload added in v0.3.8

func (m *Message) RenderDownload(args ...interface{}) *Message

func (*Message) RenderIndex added in v0.3.8

func (m *Message) RenderIndex(serve, repos string) *Message

func (*Message) RenderRedirect added in v0.3.8

func (m *Message) RenderRedirect(args ...interface{}) *Message

func (*Message) RenderResult added in v0.3.8

func (m *Message) RenderResult(args ...interface{}) *Message

func (*Message) RenderTemplate added in v0.3.8

func (m *Message) RenderTemplate(args ...interface{}) *Message

func (*Message) ReplaceLocalhost added in v0.3.8

func (m *Message) ReplaceLocalhost(url string) string

func (*Message) Result

func (m *Message) Result(arg ...interface{}) string

func (*Message) Resultv

func (m *Message) Resultv(arg ...interface{}) []string

func (*Message) Rich

func (m *Message) Rich(prefix string, chain interface{}, data interface{}) string

func (*Message) Richs

func (m *Message) Richs(prefix string, chain interface{}, raw interface{}, cb interface{}) (res map[string]interface{})

func (*Message) Right added in v0.0.4

func (m *Message) Right(arg ...interface{}) bool

func (*Message) Save added in v0.0.18

func (m *Message) Save(arg ...string) *Message

func (*Message) Search

func (m *Message) Search(key string, cb interface{}) *Message

func (*Message) Set

func (m *Message) Set(key string, arg ...string) *Message

func (*Message) ShowPlugin added in v0.3.2

func (m *Message) ShowPlugin(pod, ctx, cmd string, arg ...string)

func (*Message) Sleep added in v0.0.18

func (m *Message) Sleep(arg string) *Message

func (*Message) Sort

func (m *Message) Sort(key string, arg ...string) *Message

func (*Message) SortInt added in v0.3.0

func (m *Message) SortInt(key string)

func (*Message) SortIntR added in v0.3.0

func (m *Message) SortIntR(key string)

func (*Message) SortStr added in v0.3.0

func (m *Message) SortStr(key string)

func (*Message) SortStrR added in v0.3.0

func (m *Message) SortStrR(key string)

func (*Message) SortTime added in v0.3.0

func (m *Message) SortTime(key string)

func (*Message) SortTimeR added in v0.3.0

func (m *Message) SortTimeR(key string)

func (*Message) Source added in v0.0.18

func (m *Message) Source() *Context

func (*Message) Space added in v0.0.4

func (m *Message) Space(arg interface{}) []string

func (*Message) Spawn

func (m *Message) Spawn(arg ...interface{}) *Message

func (*Message) Split

func (m *Message) Split(str string, field string, space string, enter string) *Message

func (*Message) Start

func (m *Message) Start(key string, arg ...string) *Message

func (*Message) Starts added in v0.0.18

func (m *Message) Starts(name string, help string, arg ...string) *Message

func (*Message) Status added in v0.3.4

func (m *Message) Status(arg ...interface{})

func (*Message) StatusTime added in v0.3.8

func (m *Message) StatusTime(arg ...interface{})

func (*Message) StatusTimeCount added in v0.3.5

func (m *Message) StatusTimeCount(arg ...interface{})

func (*Message) StatusTimeCountTotal added in v0.3.5

func (m *Message) StatusTimeCountTotal(arg ...interface{})

func (*Message) Table

func (m *Message) Table(cbs ...func(index int, value map[string]string, head []string)) *Message

func (*Message) Target

func (m *Message) Target() *Context

func (*Message) Time

func (m *Message) Time(args ...interface{}) string

func (*Message) Toast added in v0.3.4

func (m *Message) Toast(content string, arg ...interface{})

func (*Message) Travel

func (m *Message) Travel(cb interface{}) *Message

func (*Message) TryCatch

func (m *Message) TryCatch(msg *Message, silent bool, hand ...func(msg *Message)) *Message

func (*Message) Upload added in v0.3.4

func (m *Message) Upload(dir string)

func (*Message) Warn

func (m *Message) Warn(err bool, arg ...interface{}) bool

func (*Message) Watch added in v0.0.4

func (m *Message) Watch(key string, arg ...string) *Message

type Option added in v0.3.4

type Option struct {
	Name  string
	Value interface{}
}

func OptionFields added in v0.3.4

func OptionFields(str ...string) Option

func OptionHash added in v0.3.4

func OptionHash(str string) Option

type Server

type Server interface {
	Spawn(m *Message, c *Context, arg ...string) Server
	Begin(m *Message, arg ...string) Server
	Start(m *Message, arg ...string) bool
	Close(m *Message, arg ...string) bool
}

type Sort added in v0.3.4

type Sort struct {
	Fields string
	Method string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL