tmax v0.1.0 released,在此之前收集了一些用户的意见,针对性地实现了其中呼声比较高的功能,最终的 released 版本除了之前介绍过的 direct mode
,search mode
,interactive mode
之外,还做了以下工作:
direct mode 支持模板参数和自定义参数
自定义参数
这个功能是首次介绍 tmax
后使用过的用户最想要的功能,因为这样可以不再局限于 tmax
中固定的短命令,在需要参数的时候也能够发挥 tmax
的作用,极大地拓展了 tmax
的使用场景。让我们通过几个 demo 来看下自定义参数的威力:
首先假设我们在配置文件 ~/.tmax.yaml
中定义了下面的短命令
现在想看下某个 pod 的简单信息,只需要执行:
tmax getpod myapp-deploy
myapp-deploy
就是自定义参数,你甚至可以在后面继续添加参数:
tmax getpod myapp-deploy -n YOUR_NAMESPACE
等同于执行 kubectl get pod myapp-deploy -owide -n YOUR_NAMESPACE
,
大家可以配合需要的自定义参数自由发挥定制属于自己的 tmax
配置文件。
模板参数
大家应该注意到了,自定义参数只能在 tmax
命令后面追加,那假如想要在中间添加可变参数就不能用了。比如,你想为一个 k8s 节点打一个污点,而这个污点是你司固定常用的,就要执行 kubectl taint node node-1.1.1.1reserved=mynode:NoSchedule
,那节点的名称就会成为一个可变参数,而污点名称又是固定不变的,那最大限度地偷懒,就是只输入节点名称就能完成命令。不要慌,tmax
支持模板参数,对于上面的命令我们可以在 ~/.tmax.yaml
中添加:
只需执行下面的内容即可完成打污点的命令
tmax taintnode -n YOUR_NODE_NAME
或者在模板里你可以配置某个参数的默认值,比如在本地你经常要操作的 k8s namespace 是 test,就可以这样写一个配置,kubectl get pod -owide -n {{.ns | default "test"}}
执行 tmax getpod myapp-deploy
就等同于 kubectl get pod -owide myapp-deploy -ntest
。假如你要访问的 pod 不在 test namespace 下,可以指定 ns: tmax getpod myapp-deploy -ns YOU_NAMESPACE
。
大家写过 golang 的应该一眼就看出 {{.n}}
就是 go template,所以我们称之为模板参数,有了这个功能后,tmax
的可玩性就很高了,一些很复杂的命令可以变得可定制。
优化配置文件的存储格式,重构 tmax add
命令
配置文件的存储格式以及各字段的含义如下
现在你可以通过 tmax add group.shortCmd "fullCmd"
的方式来新增一个命令到配置文件,比如:
tmax add k8s.allpod "kubectl get pod -A"
就将 group 为 k8s
,shortCmd 为 allpod
,fullCmd 为 kubectl get pod -A
的内容添加到配置文件了
优化了代码结构
之前的代码聚焦功能实现,没有注意代码规范和结构,release 版本进行了一些优化。
更快速的安装方式
go get -u github.com/hantmac/tmax
mac os
brew tap hantmac/tap && brew install --build-from-source tmax
linux
wget https://github.com/hantmac/tmax/releases/download/v0.1.0/tmax_v0.1.0_linux_x86_64.tar.gz && tar -zxvf tmax_v0.1.0_linux_x86_64.tar.gz -C /usr/local/bin && chmod +x /usr/local/bin/tmax
windows
windows 平台未测试,可下载源码自行 make
以上就是本次 tmax v0.1.0
版本的新功能介绍,欢迎大家下载、试用、反馈,在此感谢 Guang Jiong Lou 的 contributions,他为新功能的设计与实现贡献了大多数代码。