用go写了一个帮助开发人员早点下班的命令行工具

lwe是leave work early的缩写,也就是"早点下班"!🤣🤣🤣 它是一个帮助开发者提高工作效率的跨平台命令行工具,当然你把它当做go入门学习的项目也是合适的! 总之,欢迎提issue、提好玩或者使用的功能需求,最好能直接PR参与到项目中,大家一起努力,争取早点下班!!! 💪💪💪

功能概览

[1.由建表SQL语句转换成Java Bean、Go结构体、Json等](#1.由建表SQL语句转换成Java Bean、Go结构体、Json等 "#1")

2.将SQL语句转换成ElasticSearch查询的DSL语言

3.Git增强功能:glog、gl、gcl、gst

其它小工具

安装

下载编译后的可执行文件

release页获取对应平台的版本,在终端上即可使用该二进制文件!

如果你经常使用lwe,更推荐的方式是将二进制文件配置到环境变量中,这样可以随时随地使用二进制文件

更多的安装方式和注意事项,查查阅Wiki

使用姿势

你可以输入lwe 查看lwe命令的使用方式,有哪些子命令及其各自对的功能描述:

vbnet 复制代码
Usage: lwe [command]

Available Commands:
completion  Generate the autocompletion script for the specified shell
  es          Translate SQL to elasticsearch's DSL
  fmt         Generate the specified file based on SQL
  gcl         Update all git repository under the given dir 
  gl          Update all git repository under the given dir 
  glog        Get all git repository commit log under the given dir 
 .....

如果你想查看lwe子命令的功能和使用方式,可以使用-h参数查看命令的使用帮助 ,如:lwe es -h

1、建表语句生成Java Bean实体、Go 结构体等

如果我们已经有了表结构,使用建表语句生成对应的实体可以大大减少我们"无脑且重复"工作。 目前支持生成的结构包括Java、Go、Json。

使用方式:

text 复制代码
Usage:
lwe fmt [flags]

Examples:
lwe fmt sql-file-path [-t=java|go|json] [-a=yesAnd]

详细使用说明,可以查阅Wiki

2、SQL语句生成DSL语句

bash 复制代码
lwe es [可选参数] <SQL语句> 

这个命令可以帮我们从繁琐的ES查询语法中解脱出来,它可以将sql语句转换成响应的DSL,并且以curl命令的形式输出,这样服务器上也可以方便的使用。 当前版本支持的SQL操作

使用方式:

text 复制代码
Usage:
  lwe es [flags]

Examples:
lwe es 'select * from user where age >18' [-p=true]

详细使用说明,可以查阅Wiki

3、Git增强功能:glog、gl、gcl、gst

这里是几个围绕git相关的增强命令,基本都是在原语义上增加了一些跨git仓库的操作

Git增强功能详细使用说明,可以查阅Wiki

glog 增强Git日志功能

查看给定目录下所有git仓库提交日志 开发人员通常会在多个git仓库下工作,经常会有同时查看多个git仓库提交日志的需求,glog子命令就派上用场了。

使用方式:

text 复制代码
Usage:
  lwe glog [flags]

Examples:
lwe glog [git repo dir] [-a=yesAnd] [-n=50] [-s=2023-08-04] [-e=2023-08-04]

gl 增强拉取代码功能

拉取给定目录下的所有git仓库最新代码(使用的git pull --rebase的方式)

使用方式:

text 复制代码
Usage:
  lwe gl [flags]

Examples:
lwe gl [git repo dir]

gcl 增强git clone功能

使用方式:

text 复制代码
Usage:
  lwe gcl [flags]

Examples:
lwe gcl gitGroupUrl [dir for this git group] -t=yourToken

gst 查看指定目录下所有git仓库状态

查看给定目录下的所有git仓库状态

使用方式:

text 复制代码
Usage:
  lwe gst [flags]

Examples:
lwe gst [your git repo dir]

其它小工具

一些非常实用的功能

格式化请求url

有时请求的url很长,不利于我们找到目标参数,可以使用url命令进行格式化,增加请求的可读性

使用方式:

text 复制代码
Usage:
  lwe url [flags]

Examples:
lwe url yourUrl

详细使用说明,可以查阅Wiki

获取Navicat连接配置中的密码

如果想从Navicat保存的连接中获取对应数据库的用户名/密码,可以使用ncx文件,ncx文件是Navicat导出的连接配置文件,但ncx中的密码是一个加密后的十六进制串,使用ncx命令可以获取对应的明文

使用方式:

text 复制代码
Usage:
lwe ncx [flags]

Examples:
lwe ncx ncx-file-path

详细使用说明,可以查阅Wiki

同步两个目录下文件

如果你有备份文件的习惯,这个工具可能会帮到你,它可以将源目录文件下的新增的文件同步到备份目录,省去了你逐层文件夹逐个文件去手动同步。

使用方式:

text 复制代码
Usage:
lwe fsync [flags]

Examples:
lwe fsync sourceDir targetDir [-d=true]

详细使用说明,可以查阅Wiki

说明

1.使用spf13/cobra库来方便的构建命令行工具

2.es子命令实现借助了sqlparser库来解析SQL语句,一个库很优秀的解析SQL库

3.sql转换成dsl,曹大的elasticsql项目已经是一个很成熟好用的轮子了,lwe也大量借鉴了它的实现思路;没直接调用这个库的原因是想自己练手,同时后续增减功能也更加灵活

4.glog结果输出时使用了go-pretty库来表格化提交信息

RoadMap

  • fmt 根据需求支持更多类型的转换
  • es 按需增加对insert、update、delete ......

开源协议

MIT License

相关推荐
煎鱼eddycjy16 小时前
新提案:由迭代器启发的 Go 错误函数处理
go
煎鱼eddycjy16 小时前
Go 语言十五周年!权力交接、回顾与展望
go
不爱说话郭德纲1 天前
聚焦 Go 语言框架,探索创新实践过程
go·编程语言
0x派大星2 天前
【Golang】——Gin 框架中的 API 请求处理与 JSON 数据绑定
开发语言·后端·golang·go·json·gin
IT书架3 天前
golang高频面试真题
面试·go
郝同学的测开笔记3 天前
云原生探索系列(十四):Go 语言panic、defer以及recover函数
后端·云原生·go
秋落风声3 天前
【滑动窗口入门篇】
java·算法·leetcode·go·哈希表
0x派大星5 天前
【Golang】——Gin 框架中的模板渲染详解
开发语言·后端·golang·go·gin
0x派大星6 天前
【Golang】——Gin 框架中的表单处理与数据绑定
开发语言·后端·golang·go·gin
三里清风_7 天前
如何使用Casbin设计后台权限管理系统
golang·go·casbin