Skip to content

Commit

Permalink
Merge pull request #16 from yandex/fix-broken-config
Browse files Browse the repository at this point in the history
Issue #15: Better nginx config detection
  • Loading branch information
buglloc authored Apr 28, 2017
2 parents 558ef3f + c63435a commit d2b3cc9
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 19 deletions.
9 changes: 0 additions & 9 deletions gixy/cli/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,11 +92,6 @@ def _get_cli_parser():
return parser


def _is_nginx_file(file_path):
s = open(file_path).read()
return 'server {' in s or 'http {' in s


def main():
parser = _get_cli_parser()
args = parser.parse_args()
Expand All @@ -108,10 +103,6 @@ def main():
parser.print_help()
sys.exit(1)

if not _is_nginx_file(path):
sys.stderr.write('This is nginx config? Rly?\n')
sys.exit(1)

try:
severity = gixy.severity.ALL[args.level]
except IndexError:
Expand Down
20 changes: 10 additions & 10 deletions gixy/parser/nginx_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,14 @@ def parse(self, file_path, root=None):

if not root:
root = block.Root()
parser = raw_parser.RawParser()
parsed = parser.parse(file_path)

try:
parser = raw_parser.RawParser()
parsed = parser.parse(file_path)
except ParseException as e:
LOG.error('Failed to parse config "{file}": {error}'.format(file=file_path, error=str(e)))
return root

if len(parsed) and parsed[0].getName() == 'file_delimiter':
# Were parse nginx dump
LOG.info('Switched to parse nginx configuration dump.')
Expand Down Expand Up @@ -104,10 +110,7 @@ def _resolve_file_include(self, pattern, parent):
for file_path in glob.iglob(path):
include = block.IncludeBlock('include', [file_path])
parent.append(include)
try:
self.parse(file_path, include)
except ParseException as e:
LOG.error('Failed to parse include "{file}": {error}'.format(file=file_path, error=str(e)))
self.parse(file_path, include)

if not file_path:
LOG.warning("File not found: {}".format(path))
Expand All @@ -120,10 +123,7 @@ def _resolve_dump_include(self, pattern, parent):
founded = True
include = block.IncludeBlock('include', [file_path])
parent.append(include)
try:
self.parse_block(parsed, include)
except ParseException as e:
LOG.error('Failed to parse include "{file}": {error}'.format(file=file_path, error=str(e)))
self.parse_block(parsed, include)

if not founded:
LOG.warning("File not found: {}".format(path))
Expand Down

0 comments on commit d2b3cc9

Please sign in to comment.