Skip to content

yesAnd92/lwe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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