class
Analyzer::Lua::Cli
- Analyzer::Lua::Cli
- Analyzer
- Reference
- Object
Overview
Surfaces the command-line attack surface of Lua programs as cli://
endpoints: the argparse library (option/flag/argument/command, attributed
by receiver variable), the cliargs (lua_cliargs) library
(add_argument/add_option/add_flag, attributed by receiver variable), plus
arg indexing and os.getenv. Line-scan, merged by URL.
Defined in:
analyzer/analyzers/lua/cli.crConstant Summary
-
ARG_IDX =
/\barg\s*\[\s*(\d+)\s*\]/ -
ARGPARSE_CTOR =
/(?:local\s+)?([A-Za-z_]\w*)\s*=\s*argparse\s*\(\s*(?:['"]([^'"]*)['"])?/ -
ARGUMENT =
/([A-Za-z_]\w*)\s*:\s*argument\s*\(\s*['"]([^'"]+)['"]/ -
CLIARGS_ARG =
/([A-Za-z_]\w*)\s*:\s*add_argument\s*\(\s*['"]([^'"]+)['"]/ -
CLIARGS_CTOR =
/(?:local\s+)?([A-Za-z_]\w*)\s*=\s*require\s*\(?\s*['"]cliargs['"]/ -
CLIARGS_FLAG =
/([A-Za-z_]\w*)\s*:\s*add_flag\s*\(\s*['"]([^'"]+)['"]/ -
CLIARGS_NAME =
/([A-Za-z_]\w*)\s*:\s*set_name\s*\(\s*['"]([^'"]+)['"]/ -
CLIARGS_OPTION =
/([A-Za-z_]\w*)\s*:\s*add_option\s*\(\s*['"]([^'"]+)['"]/ -
GET_ENV =
/\bos\.getenv\s*\(\s*['"]([^'"]+)['"]/ -
MARKERS =
/\brequire\s*\(?\s*['"]argparse['"]|\bargparse\s*\(|\barg\s*\[\s*\d+\s*\]|\brequire\s*\(?\s*['"]cliargs['"]/ -
OPTION =
/([A-Za-z_]\w*)\s*:\s*(?:option|flag)\s*\(\s*['"]([^'"]+)['"]/ -
SUBCOMMAND =
/(?:local\s+)?(?:([A-Za-z_]\w*)\s*=\s*)?([A-Za-z_]\w*)\s*:\s*command\s*\(\s*['"]([^'"]+)['"]/ -
TEST_PATH_RE =
Regex.union("_spec.", "/test/") -
cli_test_path?'s two OR-ed String#includes? scans, folded into one precompiled union so the per-file boolean gate costs a single PCRE2 match instead of up to two naive substring scans. -
WEB_RE =
/\brequire\s*\(?\s*['"](?:lapis|lor)['"]/