├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ └── crossplane-ci.yml ├── .gitignore ├── AUTHORS.rst ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── MANIFEST.in ├── Makefile ├── NOTICE ├── README.md ├── crossplane ├── __init__.py ├── __main__.py ├── analyzer.py ├── builder.py ├── compat.py ├── errors.py ├── ext │ ├── __init__.py │ ├── abstract.py │ └── lua.py ├── formatter.py ├── lexer.py └── parser.py ├── ext └── crossplane-logo.png ├── setup.py ├── tests ├── __init__.py ├── configs │ ├── bad-args │ │ └── nginx.conf │ ├── comments-between-args │ │ └── nginx.conf │ ├── directive-with-space │ │ └── nginx.conf │ ├── empty-value-map │ │ └── nginx.conf │ ├── includes-globbed │ │ ├── http.conf │ │ ├── locations │ │ │ ├── location1.conf │ │ │ └── location2.conf │ │ ├── nginx.conf │ │ └── servers │ │ │ ├── locations │ │ │ └── not-included.conf │ │ │ ├── server1.conf │ │ │ └── server2.conf │ ├── includes-regular │ │ ├── conf.d │ │ │ ├── bar.conf │ │ │ ├── foo.conf │ │ │ └── server.conf │ │ ├── foo.conf │ │ └── nginx.conf │ ├── lua-block-larger │ │ └── nginx.conf │ ├── lua-block-simple │ │ └── nginx.conf │ ├── lua-block-tricky │ │ └── nginx.conf │ ├── messy │ │ └── nginx.conf │ ├── missing-semicolon │ │ ├── broken-above.conf │ │ └── broken-below.conf │ ├── non-unicode │ │ └── nginx.conf │ ├── quote-behavior │ │ └── nginx.conf │ ├── quoted-right-brace │ │ └── nginx.conf │ ├── russian-text │ │ └── nginx.conf │ ├── simple │ │ └── nginx.conf │ ├── spelling-mistake │ │ └── nginx.conf │ └── with-comments │ │ └── nginx.conf ├── ext │ ├── __init__.py │ └── test_lua.py ├── test_analyze.py ├── test_build.py ├── test_format.py ├── test_lex.py └── test_parse.py └── tox.ini /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/.github/ISSUE_TEMPLATE/bug_report.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/.github/ISSUE_TEMPLATE/feature_request.md -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/.github/PULL_REQUEST_TEMPLATE.md -------------------------------------------------------------------------------- /.github/workflows/crossplane-ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/.github/workflows/crossplane-ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/.gitignore -------------------------------------------------------------------------------- /AUTHORS.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/AUTHORS.rst -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/LICENSE -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/MANIFEST.in -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/Makefile -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/NOTICE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/README.md -------------------------------------------------------------------------------- /crossplane/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/crossplane/__init__.py -------------------------------------------------------------------------------- /crossplane/__main__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/crossplane/__main__.py -------------------------------------------------------------------------------- /crossplane/analyzer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/crossplane/analyzer.py -------------------------------------------------------------------------------- /crossplane/builder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/crossplane/builder.py -------------------------------------------------------------------------------- /crossplane/compat.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/crossplane/compat.py -------------------------------------------------------------------------------- /crossplane/errors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/crossplane/errors.py -------------------------------------------------------------------------------- /crossplane/ext/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /crossplane/ext/abstract.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/crossplane/ext/abstract.py -------------------------------------------------------------------------------- /crossplane/ext/lua.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/crossplane/ext/lua.py -------------------------------------------------------------------------------- /crossplane/formatter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/crossplane/formatter.py -------------------------------------------------------------------------------- /crossplane/lexer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/crossplane/lexer.py -------------------------------------------------------------------------------- /crossplane/parser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/crossplane/parser.py -------------------------------------------------------------------------------- /ext/crossplane-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/ext/crossplane-logo.png -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/setup.py -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/__init__.py -------------------------------------------------------------------------------- /tests/configs/bad-args/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/bad-args/nginx.conf -------------------------------------------------------------------------------- /tests/configs/comments-between-args/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/comments-between-args/nginx.conf -------------------------------------------------------------------------------- /tests/configs/directive-with-space/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/directive-with-space/nginx.conf -------------------------------------------------------------------------------- /tests/configs/empty-value-map/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/empty-value-map/nginx.conf -------------------------------------------------------------------------------- /tests/configs/includes-globbed/http.conf: -------------------------------------------------------------------------------- 1 | http { 2 | include servers/*.conf; 3 | } 4 | -------------------------------------------------------------------------------- /tests/configs/includes-globbed/locations/location1.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/includes-globbed/locations/location1.conf -------------------------------------------------------------------------------- /tests/configs/includes-globbed/locations/location2.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/includes-globbed/locations/location2.conf -------------------------------------------------------------------------------- /tests/configs/includes-globbed/nginx.conf: -------------------------------------------------------------------------------- 1 | events {} 2 | include http.conf; 3 | -------------------------------------------------------------------------------- /tests/configs/includes-globbed/servers/locations/not-included.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/includes-globbed/servers/locations/not-included.conf -------------------------------------------------------------------------------- /tests/configs/includes-globbed/servers/server1.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/includes-globbed/servers/server1.conf -------------------------------------------------------------------------------- /tests/configs/includes-globbed/servers/server2.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/includes-globbed/servers/server2.conf -------------------------------------------------------------------------------- /tests/configs/includes-regular/conf.d/bar.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/includes-regular/conf.d/bar.conf -------------------------------------------------------------------------------- /tests/configs/includes-regular/conf.d/foo.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/includes-regular/conf.d/foo.conf -------------------------------------------------------------------------------- /tests/configs/includes-regular/conf.d/server.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/includes-regular/conf.d/server.conf -------------------------------------------------------------------------------- /tests/configs/includes-regular/foo.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/includes-regular/foo.conf -------------------------------------------------------------------------------- /tests/configs/includes-regular/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/includes-regular/nginx.conf -------------------------------------------------------------------------------- /tests/configs/lua-block-larger/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/lua-block-larger/nginx.conf -------------------------------------------------------------------------------- /tests/configs/lua-block-simple/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/lua-block-simple/nginx.conf -------------------------------------------------------------------------------- /tests/configs/lua-block-tricky/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/lua-block-tricky/nginx.conf -------------------------------------------------------------------------------- /tests/configs/messy/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/messy/nginx.conf -------------------------------------------------------------------------------- /tests/configs/missing-semicolon/broken-above.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/missing-semicolon/broken-above.conf -------------------------------------------------------------------------------- /tests/configs/missing-semicolon/broken-below.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/missing-semicolon/broken-below.conf -------------------------------------------------------------------------------- /tests/configs/non-unicode/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/non-unicode/nginx.conf -------------------------------------------------------------------------------- /tests/configs/quote-behavior/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/quote-behavior/nginx.conf -------------------------------------------------------------------------------- /tests/configs/quoted-right-brace/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/quoted-right-brace/nginx.conf -------------------------------------------------------------------------------- /tests/configs/russian-text/nginx.conf: -------------------------------------------------------------------------------- 1 | env 'русский текст'; 2 | events {} 3 | -------------------------------------------------------------------------------- /tests/configs/simple/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/simple/nginx.conf -------------------------------------------------------------------------------- /tests/configs/spelling-mistake/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/spelling-mistake/nginx.conf -------------------------------------------------------------------------------- /tests/configs/with-comments/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/configs/with-comments/nginx.conf -------------------------------------------------------------------------------- /tests/ext/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/ext/test_lua.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/ext/test_lua.py -------------------------------------------------------------------------------- /tests/test_analyze.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/test_analyze.py -------------------------------------------------------------------------------- /tests/test_build.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/test_build.py -------------------------------------------------------------------------------- /tests/test_format.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/test_format.py -------------------------------------------------------------------------------- /tests/test_lex.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/test_lex.py -------------------------------------------------------------------------------- /tests/test_parse.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tests/test_parse.py -------------------------------------------------------------------------------- /tox.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nginxinc/crossplane/HEAD/tox.ini --------------------------------------------------------------------------------