用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

相关推荐
Grassto2 小时前
12 go.sum 是如何保证依赖安全的?校验机制源码解析
安全·golang·go·哈希算法·go module
Grassto2 天前
11 Go Module 缓存机制详解
开发语言·缓存·golang·go·go module
程序设计实验室3 天前
2025年的最后一天,分享我使用go语言开发的电子书转换工具网站
go
我的golang之路果然有问题3 天前
使用 Hugo + GitHub Pages + PaperMod 主题 + Obsidian 搭建开发博客
golang·go·github·博客·个人开发·个人博客·hugo
啊汉5 天前
古文观芷App搜索方案深度解析:打造极致性能的古文搜索引擎
go·软件随想
asaotomo5 天前
一款 AI 驱动的新一代安全运维代理 —— DeepSentry(深哨)
运维·人工智能·安全·ai·go
码界奇点6 天前
基于Gin与GORM的若依后台管理系统设计与实现
论文阅读·go·毕业设计·gin·源代码管理
迷迭香与樱花6 天前
Gin 框架
go·gin
只是懒得想了6 天前
用Go通道实现并发安全队列:从基础到最佳实践
开发语言·数据库·golang·go·并发安全
fenglllle7 天前
使用fyne做一个桌面ipv4网段计算程序
开发语言·go