1
0
mirror of https://shylinux.com/x/icebergs synced 2025-04-26 01:24:05 +08:00
This commit is contained in:
shylinux 2020-08-28 09:21:39 +08:00
parent f9eeef862c
commit 68762a99f5
4 changed files with 89 additions and 14 deletions

View File

@ -5,6 +5,7 @@ import (
"github.com/shylinux/icebergs/base/cli"
"github.com/shylinux/icebergs/base/gdb"
"github.com/shylinux/icebergs/base/mdb"
"github.com/shylinux/icebergs/base/tcp"
"github.com/shylinux/icebergs/base/web"
"github.com/shylinux/icebergs/core/code"
kit "github.com/shylinux/toolkits"
@ -32,6 +33,9 @@ var _tmux = []string{cli.SYSTEM, TMUX}
var Index = &ice.Context{Name: TMUX, Help: "工作台",
Configs: map[string]*ice.Config{
TMUX: {Name: "tmux", Help: "终端", Value: kit.Data(
"source", "https://github.com/tmux/tmux/releases/download/3.1b/tmux-3.1b.tar.gz",
)},
SESSION: {Name: "session", Help: "会话", Value: kit.Data(
"format", "#{session_id},#{session_attached},#{session_name},#{session_windows},#{session_height},#{session_width}",
"fields", "id,tag,session,windows,height,width",
@ -55,6 +59,59 @@ var Index = &ice.Context{Name: TMUX, Help: "工作台",
)},
},
Commands: map[string]*ice.Command{
TMUX: {Name: "tmux 启动:button 编译:button 下载:button", Help: "终端", Action: map[string]*ice.Action{
"download": {Name: "download", Help: "下载", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(code.INSTALL, "download", m.Conf(TMUX, "meta.source"))
}},
"compile": {Name: "compile", Help: "编译", Hand: func(m *ice.Message, arg ...string) {
name := path.Base(strings.TrimSuffix(strings.TrimSuffix(m.Conf(TMUX, "meta.source"), ".tar.gz"), "zip"))
p := m.Option(cli.CMD_DIR, path.Join(m.Conf(code.INSTALL, kit.META_PATH), name))
m.Cmdy(cli.SYSTEM, "./configure", "--prefix="+kit.Path(path.Join(p, "install")))
m.Cmdy(cli.SYSTEM, "make", "-j8")
}},
"start": {Name: "start", Help: "启动", Hand: func(m *ice.Message, arg ...string) {
// 分配
port, p := "", ""
for {
port = m.Cmdx(tcp.PORT, "select", port)
p = path.Join(m.Conf(cli.DAEMON, kit.META_PATH), port)
if _, e := os.Stat(p); e != nil && os.IsNotExist(e) {
break
}
port = kit.Format(kit.Int(port) + 1)
}
os.MkdirAll(path.Join(p, "logs"), ice.MOD_DIR)
os.MkdirAll(path.Join(p, "bin"), ice.MOD_DIR)
os.MkdirAll(p, ice.MOD_DIR)
// 复制
name := path.Base(strings.TrimSuffix(strings.TrimSuffix(m.Conf(TMUX, "meta.source"), ".tar.gz"), "zip"))
m.Cmd(cli.SYSTEM, "cp", "-r", path.Join(m.Conf(code.INSTALL, kit.META_PATH), name, "src/redis-cli"), path.Join(p, "bin"))
m.Cmd(cli.SYSTEM, "cp", "-r", path.Join(m.Conf(code.INSTALL, kit.META_PATH), name, "src/redis-server"), path.Join(p, "bin"))
m.Cmd(cli.SYSTEM, "cp", "-r", path.Join(m.Conf(code.INSTALL, kit.META_PATH), name, "src/redis-benchmark"), path.Join(p, "bin"))
// 启动
m.Option(cli.CMD_DIR, p)
m.Cmdy(cli.DAEMON, "bin/redis-server", "--port", port)
}},
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
if len(arg) > 0 && arg[0] != "" {
m.Cmdy(cli.SYSTEM, "bin/redis-cli", "-p", arg[0], kit.Split(kit.Select("info", arg, 1)))
return
}
m.Cmd(cli.DAEMON).Table(func(index int, value map[string]string, head []string) {
if strings.HasPrefix(value[kit.MDB_NAME], "bin/redis") {
m.Push(kit.MDB_TIME, value[kit.MDB_TIME])
m.Push(kit.MDB_PORT, path.Base(value[kit.MDB_DIR]))
m.Push(kit.MDB_DIR, value[kit.MDB_DIR])
m.Push(kit.MDB_STATUS, value[kit.MDB_STATUS])
m.Push(kit.MDB_PID, value[kit.MDB_PID])
m.Push(kit.MDB_NAME, value[kit.MDB_NAME])
}
})
m.Sort("time", "time_r")
}},
TEXT: {Name: "text 保存:button 清空:button text:textarea", Help: "文本", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
if len(arg) > 0 && arg[0] != "" {
m.Cmd(_tmux, "set-buffer", arg[0])
@ -62,11 +119,7 @@ var Index = &ice.Context{Name: TMUX, Help: "工作台",
text := m.Cmdx(_tmux, "show-buffer")
m.Cmdy("web.wiki.image", "qrcode", text)
m.Echo("\n")
m.Echo(text)
m.Echo("\n")
m.Render("")
m.Echo("\n<span>%s</span>", text).Render("")
}},
BUFFER: {Name: "buffer [buffer=auto [value]] auto", Help: "缓存", Action: map[string]*ice.Action{
mdb.MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {

View File

@ -1,9 +1,30 @@
title "tmux"
refer "官网" `
官网 http://tmux.github.io/
文档 https://git-scm.com/docs
源码 https://github.com/tmux/tmux
文档 http://man.openbsd.org/OpenBSD-current/man1/tmux.1
`
premenu
field tmux web.code.tmux.tmux
field tmux web.code.inner args `[ usr/install/tmux-3.1b input.c ]`
chapter "安装"
section "libevent"
spark shell `
wget https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
tar xvf libevent-2.1.12-stable.tar.gz && cd libevent-2.1.12-stable
./configure
make -j8
make install
`
section "ncureses"
spark shell `
wget https://invisible-island.net/datafiles/release/ncurses.tar.gz
tar xvf ncurese.tar.gz && cd ncurese-6.2
./configure
make -j8
make install
`
chapter "应用"
field text web.code.tmux.text

View File

@ -1,20 +1,15 @@
title "vim"
premenu
refer "官网" `
官网 https://www.vim.org
源码 https://github.com/vim/vim
文档 http://vimdoc.sourceforge.net/htmldoc/usr_toc.html
`
premenu
chapter "安装"
section "下载源码"
refer `
下载 ftp://ftp.vim.org/pub/vim/unix/vim-8.1.tar.bz2
`
section "编译安装"
spark shell `
wget ftp://ftp.vim.org/pub/vim/unix/vim-8.1.tar.bz2
tar xvf vim-81.tar.bz2 && cd vim81
./configure --prefix=/usr/local --enable-multibyte=yes
make -j4
@ -31,6 +26,7 @@ field "源码" web.code.inner args `[ usr/install/vim81/ src/main.c 110 ]`
field "脚本" web.code.inner args `[ usr/local/share/vim/vim81/ filetype.vim ]`
field "文档" web.code.inner args `[ usr/local/share/vim/vim81/doc/ help.txt ]`
chapter "使用"
chapter "配置"

View File

@ -1 +1,6 @@
title "zsh"
refer `
官网 https://www.zsh.org/
源码 https://github.com/zsh-users/zsh/
文档 http://zsh.sourceforge.net/Doc/Release/zsh_toc.html
`