kite
- Personal developer tool command application.
- https://github.com/inhere/kite-go Go 语言版本
- https://github.com/inhere/kite PHP 版本,不再维护。
kite g/git
git 常用命令操作kite gl
gitlab 常用命令操作kite gh
github 常用命令操作kite str/text
字符串处理工具: 分析,格式化,提取信息,转换kite json
json 处理工具: 格式化,查找,过滤等- go, php, java 代码生成,转换等 TODO
- json, yaml, sql 格式化,查看,转换
kite tool jump
记录并快速跳转目录kite sys
系统、环境信息查看kite run
快速运行系统命令kite script
快速运行内置脚本
kite fs/file
内容查看, 查找,处理, 渲染等kite http
http 服务(echo,fs),快速发送请求等kite brun
批量运行命令 TODOkite doc
文档搜索、查看等 TODO
curl https://raw.githubusercontent.com/inhere/kite-go/main/cmd/install.sh | bash
从代理下载安装脚本
curl https://ghproxy.com/https://raw.githubusercontent.com/inhere/kite-go/main/cmd/install.sh | bash -s proxy
wget -c https://github.com/inhere/kite-ge/releases/latest/download/kite-{OS}-{ARCH}.tar.gz
go install github.com/inhere/kite-go/cmd/kite
- 下载完成后,将解压后的可执行文件移动到
PATH
目录下,注意设置执行权限 - 运行
kite app init
执行初始化. 会生成默认的配置文件等到~/.kite-go
目录
$ kite app init
kite # 查看全部命令
kite COMMAND # 运行一个命令
kite COMMAND -h # 查看命令帮助信息
kite COMMAND SUBCOMMAND # 运行一个子级命令
推荐配置常用命令组别名到 ~/.bashrc
或者 ~/.zshrc
,这样可以快速使用常用的命令。
## aliases for kite
alias kg="kite git"
alias kgl="kite gitlab"
alias kgh="kite github"
alias kj="kite json"
alias kjson="kite json"
alias kstr="kite text"
alias kdev="kite dev"
alias ktool="kite tool"
alias kjump="kite tool jump"
kite tool jump
可以记录历史并快速跳转到指定目录.
为 bash
启用快速跳转(add to ~/.bashrc
):
# 默认跳转函数为: jump
eval "$(kite tool jump shell bash)"
为 zsh
启用快速跳转(add to ~/.zshrc
):
# 默认跳转函数为: jump
eval "$(kite tool jump shell zsh)"
# 设置绑定的跳转函数为: j
eval "$(kite tool jump shell --bind j zsh)"
- 如果在
zsh
中使用jump
函数, 提示command not found: compdef
错误.
解决方法:
autoload -Uz compinit
compinit
- zsh 提示
zsh compinit: insecure directories, run compaudit for list
错误
解决方法:
找到有问题的目录, 并移除组写权限.
compaudit | xargs chmod g-w
# or
# 查看有问题的目录,并调整权限
compaudit
chmod g-w /usr/local/share/zsh
# or
# chmod -R 755 /usr/local/share/zsh
$ j ~/Workspace/godev/gookit/kite-go # 首次跳转到目录后将会记住
$ j kite go # 快速跳转到 ~/Workspace/godev/gookit/kite-go 目录
$ j kite # 可以双击 TAB 自动补全历史目录路径
Note: 可以使用多个关键字确定目录(如
j kite go
), 但是关键字必须是目录名的一部分.
^
表示匹配排除目录名j kite go ^pkg
目录路径包含kite,go
不包含pkg
的目录$
表示必须以目录名结尾 eg:j kite-go$
只匹配kite-go
结尾目录
$ kite jump add wp ~/Workspace
# 添加之后可以使用名称跳转
$ j wp
$ kite jump list
kite git
提供了一些 git 命令行快速使用命令的封装.
$ kite g # 查看封装的可用的 git 命令
Note: 通过
kite git CMD
运行未知命令会自动转发到系统上的git
下面执行. 因此, 可以执行任何git
命令.
kite gitlab
提供了一些 gitlab 命令行快速使用命令的封装.
$ kite gl # 查看封装的可用的 gitlab 命令
Note: 通过
kite gl CMD
运行未知命令会自动转发到kite git
命令组下面执行. 因此, 可以执行任何 git 命令.
通常只需要配置下面两个信息即可使用
# gitlab host,不带 http 协议前缀
GITLAB_HOST=gitlab.your.com
# fork 模式下,源仓库的 remote 名称
GITLAB_SRC_REMOTE=main
可用直接使用 group/path
快速克隆仓库, 会自动填充配置的 GITLAB_HOST
进行克隆.
$ kite gl clone group/path
kite gl ac
快速提交:
$ kite gl ac -m "fix: fix a bug"
kite gl acp
快速提交并推送:
$ kite gl acp -m "fix: fix a bug"
通过配置 config/gitx.yml
中的 fork_mode: true
开启 fork 模式.
gitlab:
fork_mode: true
Note: gitlab 的配置默认会继承
gitx.yml->git
的配置信息.
$ kite gl open # 快速在浏览器打开当前仓库
GitHub 大部分命令与 git
gitlab
组下面的相同. 同样提供了 ac
acp
clone
open
等命令.
Note: 通过
kite gh CMD
运行未知命令会自动转发到kite git
命令组下面执行.
通常只需要配置下面de信息即可使用
# github
GITHUB_USER=inhere
Note:
github
的配置默认会继承gitx.yml->git
的配置信息.
可用直接使用 group/path
快速克隆仓库, 会自动填充配置的 GITLAB_HOST
进行克隆.
$ kite gl clone group/path
启动一个简单的 echo
服务用于快速测试发送请求是否正确响应. 不论请求任何路由,都会返回请求的方法,headers,请求数据等.
$ kite http echo-server
在指定目录快速启动一个文件服务, 用于测试请求服务文件,比如 图片.
# file: public/some.png
# access http://localhost:8090/fs/some.png
$ kite http fs-server --port 8090 -w public
通过定义API请求模板和设置请求变量来快速发送请求. 快速实现操作三方工具.
$ kite http tpl-send -d jenkins --api api-build.json5 -e dev --var branch=qa -v group=my -v repoName=user
配置模板信息和目录.
# domain: gitlab, jenkins, feishu
http_tpl:
domains:
gitlab:
config_file: $data/http_tpl/gitlab-domain.json5
jenkins:
config_file: $data/http_tpl/jenkins-domain.json5
kite fs
封装了一些对文件或目录的常用操作命令.
kite fs cat
跟系统的 cat 类似, 但是会针对不同扩展文件提供语法高亮渲染并输出.
$ kite fs cat README.md
kite fs render
可以通过输入变量或指定变量文件,快速的将模板内容或文件渲染并输出.
两种引擎模式:
simple/replace
快速替换模板变量,简单方便,但是不支持表达式.go/go-tpl
使用 gotext/template
渲染模板,功能强大.
# simple example
$ kite fs render -v name=inhere -v age=234 'hi, {{name}}, age is {{ age }}'
# go-tpl example
$ kite fs render --eng go-tpl -v name=inhere -v age=234 'hi, {{.name}}, age is {{ .age }}'
# use variable file and template file
$ kite fs render --var-file /path/to/_variables.yaml @/path/to/my-template.tpl
在 kite app
命令下内置了一些命令,可以查看kite自身的信息.
kite app init
初始化kite配置目录和默默配置信息
$ kite app info
可以方便的查看kite的基本信息
- kite版本, 编译的go版本
- 加载的 dotenv 文件
- 加载的配置文件列表
- 配置文件目录等
使用kite别名可以快速运行一些常用子命令. kite app alias
可以方便的查看配置的 kite 内置命令别名列表.
Note: 可以直接运行
kite env
, 就是因为配置了别名env: sys env
.kite env
等同于在执行kite sys env
$ kite app alias -l
通过 kite app config
可以查看加载合并后的全部配置信息,也可以按key查看指定的配置信息.
$ kite app config -a
查看指定key:
$ kite app config git
$ kite app config gitlab
通过 kite app path
命令可以查看获取kite的路径信息, 例如: 配置目录,临时目录,缓存目录等等
$ kite app path -a # 列出所有kite相关的目录信息
$ kite app path base # 获取kite基础目录
$ kite app path config # 获取配置目录
kite app pathmap
查看用户自定义的快速路径别名列表.
$ kite app pathmap
按层级列出kite所有命令,包含所有子级命令列表. TODO
kite app cmd-map
使用 kite run COMMAND
运行任意命令. 它会自动尝试检查 COMMAND
是
否是 alias|script|plugin|system-cmd
中的一个命令. 匹配成功则执行.
$ kite run {script|alias|plugin|system-cmd}
kite 里 script
分两种,一种是配置的 一条或多条命令;一种是脚本文件(如 bash 文件).
查看所有的 scripts
命令:
$ kite run --script -l
# 或者(配置了内置别名 script: run --script)
$ kite script -l
Note: 你可以自定义配置任意的
scripts
命令, 请查看$config/module/scripts.yml
kite sys
系统命令组提供了一些常用的系统命令包装,方便查询或操作系统工具.
batch-run
可以在一个目录的每个子目录或指定的多个目录同时执行命令 TODO
$ kite sys batch-run
kite sys clip
可以方便的通过命令方式读取或写入内容到系统剪切板.
$ kite sys clip -r # read contents
$ kite sys clip -w "some contents" # read contents
Note: 你会发现在 kite 里很多操作
字符串
或者文件
的命令都支持读取剪切板数据.
kite sys find-exe
将会在 PATH 的目录里模糊匹配搜索可执行文件列表.
kite sys which
跟系统的 whereis
which
一样将会在 PATH 的目录里完全匹配查找可执行文件.
显示全部环境变量信息:
kite sys env
# or
# 因为配置了kite别名 env: sys env, 因此可以直接运行 kite env
kite env
搜索ENV变量信息:
$ kite env -s term
展开ENV变量信息:
Note:
--expand
将会把变量值按系统分隔符分割为多行方便查看.
$ kite sys env --expand path
可以配置在运行一些特殊命令时自动设置代理环境,方便使用.
配置示例:
# will set local_proxy before run matched command
proxy_cmd:
command_ids:
- 'github:tag:delete'
group_limits:
github: [acp, push, pull, update, update-push]
# local proxy hosts
local_proxy:
# export http_proxy=http://127.0.0.1:1081;export https_proxy=http://127.0.0.1:1081;
http_proxy: ${PROXY_SERVE}
https_proxy: ${PROXY_SERVE}
KITE_INIT_LOG=debug go run ./cmd/kite
make install
# or
go build -o $GOPAHT/bin/kite ./cmd/kite
- https://github.com/gookit/config
- https://github.com/gookit/rux
- https://github.com/gookit/gcli
- https://github.com/gookit/ini
- https://github.com/bitfield/script
- https://github.com/zyedidia/eget Easily install prebuilt binaries from GitHub.