diff --git a/lib/ansiblereview/__init__.py b/lib/ansiblereview/__init__.py index cb8a375..f9350c2 100644 --- a/lib/ansiblereview/__init__.py +++ b/lib/ansiblereview/__init__.py @@ -1,4 +1,11 @@ -from ansiblelint import default_rulesdir, RulesCollection +try: + from ansiblelint.constants import DEFAULT_RULESDIR +except ImportError: + from ansiblelint import default_rulesdir as DEFAULT_RULESDIR +try: + from ansiblelint.rules import RulesCollection +except ImportError: + from ansiblelint import RulesCollection import codecs from functools import partial import re @@ -15,6 +22,9 @@ from ansible.utils import module_finder as module_loader +RC_HAS_CREATE_FROM_DIR = hasattr(RulesCollection, "create_from_directory") + + class AnsibleReviewFormatter(object): def format(self, match): @@ -215,9 +225,14 @@ def lintcheck(rulename): def ansiblelint(rulename, candidate, settings): result = Result(candidate.path) rules = RulesCollection() - rules.extend(RulesCollection.create_from_directory(default_rulesdir)) - if settings.lintdir: - rules.extend(RulesCollection.create_from_directory(settings.lintdir)) + if RC_HAS_CREATE_FROM_DIR: + rules.extend(RulesCollection.create_from_directory(DEFAULT_RULESDIR)) + if settings.lintdir: + rules.extend(RulesCollection.create_from_directory(settings.lintdir)) + else: + rules.extend(RulesCollection([DEFAULT_RULESDIR])) + if settings.lintdir: + rules.extend(RulesCollection([settings.lintdir])) fileinfo = dict(path=candidate.path, type=candidate.filetype) matches = rules.run(fileinfo, rulename.split(','))