kite - Personal developer tool command application.
- https://github.com/inhere/kite-go Go 语言版本
- https://github.com/inhere/kite PHP 版本,不再维护。
kite g/gitgit 常用命令操作kite glgitlab 常用命令操作kite ghgithub 常用命令操作kite str/text字符串处理工具: 分析,格式化,提取信息,转换kite jsonjson 处理工具: 格式化,查找,过滤等- go, php, java 代码生成,转换等 TODO
- json, yaml, sql 格式化,查看,转换
kite tool jump记录并快速跳转目录kite sys系统、环境信息查看kite run快速运行系统命令kite script快速运行内置脚本
kite fs/file内容查看, 查找,处理, 渲染等kite httphttp 服务(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 proxywget -c https://github.com/inhere/kite-ge/releases/latest/download/kite-{OS}-{ARCH}.tar.gzgo install github.com/inhere/kite-go/cmd/kite- 下载完成后,将解压后的可执行文件移动到
PATH目录下,注意设置执行权限 - 运行
kite app init执行初始化. 会生成默认的配置文件等到~/.kite-go目录
$ kite app initkite # 查看全部命令
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 listkite 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/pathkite 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: trueNote: gitlab 的配置默认会继承
gitx.yml->git的配置信息.
$ kite gl open # 快速在浏览器打开当前仓库GitHub 大部分命令与 git gitlab 组下面的相同. 同样提供了 ac acp clone open 等命令.
Note: 通过
kite gh CMD运行未知命令会自动转发到kite git命令组下面执行.
通常只需要配置下面de信息即可使用
# github
GITHUB_USER=inhereNote:
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.json5kite fs 封装了一些对文件或目录的常用操作命令.
kite fs cat 跟系统的 cat 类似, 但是会针对不同扩展文件提供语法高亮渲染并输出.
$ kite fs cat README.mdkite 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 文件).
功能特点:
- script-task 功能增强
- 支持扫描工作目录和父级目录的 task 定义文件
- 运行时支持解析 全局,定义,上下文等变量
- task command 支持独立定义 workdir, vars 等属性
- task, command 定义的 vars 支持动态变量 eg: "@sh: git version"
- 支持通过 command 引用执行其他 task
查看所有的 scripts 命令:
$ kite run --script -l
# 或者(配置了内置别名 script: run --script)
$ kite script -lNote: 你可以自定义配置任意的
scripts命令, 请查看$config/module/scripts.yml
kite sys 系统命令组提供了一些常用的系统命令包装,方便查询或操作系统工具.
batch-run 可以在一个目录的每个子目录或指定的多个目录同时执行命令 TODO
$ kite sys batch-runkite sys clip 可以方便的通过命令方式读取或写入内容到系统剪切板.
$ kite sys clip -r # read contents
$ kite sys clip -w "some contents" # read contentsNote: 你会发现在 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_VERBOSE=debug go run ./cmd/kiteWindows:
$env:KITE_VERBOSE='debug'
go run ./cmd/kitemake 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/go-task/task
- https://github.com/tj/robo
- https://github.com/casey/just
- https://github.com/jdx/mise
- https://github.com/bitfield/script
- https://github.com/zyedidia/eget Easily install prebuilt binaries from GitHub.
