lwe
lwe是leave work early的缩写,也就是"早点下班"!🤣🤣🤣
它是一个帮助开发者提高工作效率的跨平台命令行工具,当然你把它当做go入门学习的项目也是合适的!
总之,欢迎提issue、提好玩或者使用的功能需求,最好能直接PR参与到项目中,大家一起努力,争取早点下班!!! 💪💪💪
功能
Git增强多仓库操作能力:glog、gl、gcl、gst
由建表SQL语句转换成Java Bean、Go结构体、Json等
将SQL语句转换成ElasticSearch查询的DSL语言
PDF工具:合并多个图片或者PDF、截取PDF指定页
其它小工具
- 获取Navicat连接配置中的密码
- 同步两个目录下文件
- 格式化请求url
安装
下载编译后的可执行文件
到release页获取对应平台的版本,在终端上即可使用该二进制文件!
当然,更推荐的方式是将二进制文件配置到环境变量中,这样可以随时随地使用二进制文件
更多的安装方式和注意事项,查查阅Wiki
使用
你可以输入lwe
查看lwe命令的使用方式,有哪些子命令及其各自对的功能描述。
如果对某个子命令感兴趣,可以使用-h
参数查看命令的使用示例 ,如:lwe glog -h
Git增强多仓库操作能力:glog、gl、gcl、gst
这里是几个围绕git相关的增强命令,基本都是在原语义上增加了一些跨git仓库的操作
Git增强功能详细使用说明,可以查阅Wiki
glog 增强Git日志功能
查看给定目录下所有git仓库提交日志
开发人员通常会在多个git仓库下工作,经常会有同时查看多个git仓库提交日志的需求,glog子命令就派上用场了。
使用方式:
lwe glog [git repo dir] [-a=yesAnd] [-n=50] [-s=2023-08-04] [-e=2023-08-04]
gl 增强拉取代码功能
拉取给定目录下的所有git仓库最新代码(使用的git pull --rebase的方式)
使用方式:
lwe gl [git repo dir]
gcl 增强git clone功能
使用方式:
lwe gcl gitGroupUrl [dir for this git group] -t=yourToken
gst 查看指定目录下所有git仓库状态
查看给定目录下的所有git仓库状态
使用方式:
lwe gst [your git repo dir]
建表语句生成Java Bean实体、Go 结构体等
如果我们已经有了表结构,使用建表语句生成对应的实体可以大大减少我们"无脑且重复"工作。
目前支持生成的结构包括Java、Go、Json。
使用方式:
lwe fmt sql-file-path [-t=java|go|json] [-a=yesAnd]
详细使用说明,可以查阅Wiki
SQL语句生成DSL语句
lwe es [可选参数] <SQL语句>
这个命令可以帮我们从繁琐的ES查询语法中解脱出来,它可以将sql语句转换成响应的DSL,并且以curl命令的形式输出,这样服务器上也可以方便的使用。
当前版本支持的SQL操作
使用方式:
lwe es 'select * from user where age >18' [-p=true]
详细使用说明,可以查阅Wiki
PDF工具:合并多个图片或者PDF、截取PDF指定页
对PDF进行简单的编辑还是挺常用的功能,比如把几个PDF、图片合并成一个PDF,从一个PDF中抽离出指定页等,但是在很多办公软件上收费的功能,lwe提供了简单编辑PDF的能力。
pdfm 合并PDF或者图片
按照指定的文件顺序,将多个PDF、图片文件合并成一个PDF文件
使用方式:
lwe pdfm out.pdf in1.pdf,in2.jpg,*.png,in3.pdf ...
详细使用说明,可以查阅Wiki
pdfc 从PDF中截取指定的页
按照指定的页码,从PDF中截取对应的页生成PDF文件
使用方式:
lwe pdfc [-m] in.pdf outDir 2,3,5,7-9,15 ...
详细使用说明,可以查阅Wiki
其它小工具
一些非常实用的功能
格式化请求url
有时请求的url很长,不利于我们找到目标参数,可以使用url命令进行格式化,增加请求的可读性
使用方式:
lwe url yourUrl
详细使用说明,可以查阅Wiki
获取Navicat连接配置中的密码
如果想从Navicat保存的连接中获取对应数据库的用户名/密码,可以使用ncx文件,ncx文件是Navicat导出的连接配置文件,但ncx中的密码是一个加密后的十六进制串,使用ncx命令可以获取对应的明文
使用方式:
lwe ncx ncx-file-path
详细使用说明,可以查阅Wiki
同步两个目录下文件
如果你有备份文件的习惯,这个工具可能会帮到你,它可以将源目录文件下的新增的文件同步到备份目录,省去了你逐层文件夹逐个文件去手动同步。
使用方式:
lwe fsync sourceDir targetDir [-d=true]
详细使用说明,可以查阅Wiki
声明
1.使用spf13/cobra库来方便的构建命令行工具
2.es子命令实现借助了sqlparser库来解析SQL语句,一个库很优秀的解析SQL库
3.sql转换成dsl,曹大的elasticsql项目已经是一个很成熟好用的轮子了,lwe也大量借鉴了它的实现思路;没直接调用这个库的原因是想自己练手,同时后续增减功能也更加灵活
4.git增强命令结果输出时使用了go-pretty库来表格化提交信息
5.pdf命令是在pdfcpu基础上进行的封装
RoadMap
- fmt 根据需求支持更多类型的转换
- es 按需增加对insert、update、delete
......
开源协议
MIT License