luacheck and lj-releng

基本命令

Posted by DYD on August 25, 2020

摘抄自OpenResty最佳实践

Lua 上下文中应当严格避免使用自己定义的全局变量。可以使用一个 lj-releng 工具来扫描 Lua 代码,定位使用 Lua 全局变量的地方。lj-releng 的相关链接: https://github.com/openresty/openresty-devel-utils/blob/master/lj-releng

如果使用 macOS 或者 Linux,可以使用下面命令安装 lj-releng:

curl -L https://raw.githubusercontent.com/openresty/openresty-devel-utils/master/lj-releng > /usr/local/bin/lj-releng

chmod +x /usr/local/bin/lj-releng

然后进入你自己的 Lua 文件所在的工作目录,得到如下结果:


#  lj-releng
foo.lua: 0.01 (0.01)
Checking use of Lua global variables in file foo.lua...
op no.  line  instruction args  ; code
2  [8] SETGLOBAL 0 -1  ; A
Checking line length exceeding 80...
WARNING: No "_VERSION" or "version" field found in `use_foo.lua`.
Checking use of Lua global variables in file use_foo.lua...
op no.  line  instruction args  ; code
2  [1] SETGLOBAL 0 -1  ; A
7  [4] GETGLOBAL 2 -1  ; A
8  [4] GETGLOBAL 3 -1  ; A
18 [8] GETGLOBAL 4 -1  ; A
Checking line length exceeding 80...

结果显示: 在 foo.lua 文件中,第 8 行设置了一个全局变量 A ; 在 use_foo.lua 文件中,没有版本信息,并且第 1 行设置了一个全局变量 A ,第 4、8 行使用了全局变量 A 。当然,更推荐采用 luacheck 来检查项目中全局变量,之后的“代码静态分析”一节,我们还会讲到如何使用 luacheck。

sudo apt install lua-check

#ngx变量在开启了配置--std ngx_lua后可被luacheck识别
luacheck filename or directory即可

lj-releng文件

https://github.com/openresty/openresty-devel-utils/edit/master/lj-releng

openresty OAuth 2 上

openresty OAuth 2 中

openresty OAuth 2 下 OAuth 2补充

OAuth介绍

openresty最佳实践

api网关的选型和持续集成

open talk 很多可以借鉴

Travis CI教程