From 68762a99f51acd495dda8eec36b990868e8d145b Mon Sep 17 00:00:00 2001 From: shylinux Date: Fri, 28 Aug 2020 09:21:39 +0800 Subject: [PATCH] opt some --- misc/tmux/tmux.go | 63 ++++++++++++++++++++++++++++++++++++++++++---- misc/tmux/tmux.shy | 25 ++++++++++++++++-- misc/vim/vim.shy | 10 +++----- misc/zsh/zsh.shy | 5 ++++ 4 files changed, 89 insertions(+), 14 deletions(-) diff --git a/misc/tmux/tmux.go b/misc/tmux/tmux.go index 218f78fd..fda1a6a3 100644 --- a/misc/tmux/tmux.go +++ b/misc/tmux/tmux.go @@ -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%s", 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) { diff --git a/misc/tmux/tmux.shy b/misc/tmux/tmux.shy index 41d91ba2..01f3c622 100644 --- a/misc/tmux/tmux.shy +++ b/misc/tmux/tmux.shy @@ -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 diff --git a/misc/vim/vim.shy b/misc/vim/vim.shy index 6563c6c5..a9f0d046 100644 --- a/misc/vim/vim.shy +++ b/misc/vim/vim.shy @@ -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 "配置" diff --git a/misc/zsh/zsh.shy b/misc/zsh/zsh.shy index f048dc4d..2913c25d 100644 --- a/misc/zsh/zsh.shy +++ b/misc/zsh/zsh.shy @@ -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 +`