aboutsummaryrefslogtreecommitdiffstats
path: root/anteater/anteater.py
diff options
context:
space:
mode:
authorlhinds <lhinds@redhat.com>2017-05-17 13:31:18 +0100
committerlhinds <lhinds@redhat.com>2017-05-22 14:12:27 +0100
commit0142c227fca974fb65561d0aeb9b38c8683e22e6 (patch)
treef802b60e2ceab8b033212568d3adddc754faa7da /anteater/anteater.py
parent9c00ca00dcad5624288de38e0a529f7f7b3915db (diff)
Initial code push of Anteater
Likely far to much to cover in a commit msg. Main bulk is the Anteater code itself, alongside packaging requirements and build tools and Dockerfile. Unit tests are planned as a follow up, so pushing this for now so that efforts can get underway to integrate the tool with jjb. Questions on how it works, please reach me in IRC. Change-Id: I2cd3cae391f8bf2cdc91b39c56dfc4833a1c4913 Signed-off-by: lhinds <lhinds@redhat.com>
Diffstat (limited to 'anteater/anteater.py')
-rw-r--r--anteater/anteater.py64
1 files changed, 64 insertions, 0 deletions
diff --git a/anteater/anteater.py b/anteater/anteater.py
new file mode 100644
index 0000000..063fcbd
--- /dev/null
+++ b/anteater/anteater.py
@@ -0,0 +1,64 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+##############################################################################
+# Copyright (c) 2017 Luke Hinds <lhinds@redhat.com>, Red Hat
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+# from __future__ import division, print_function, absolute_import
+
+"""Anteater - CI Gate Checks.
+
+Usage:
+ anteater (-p |--project) <project> [(-ps |--patchset) <patchset>]
+ anteater (-p |--project) <project> [--path <project_path>]
+ anteater (-h | --help)
+ anteater --version
+
+Options:
+ -h --help Show this screen.
+ --version Show version.
+"""
+
+import ConfigParser
+from docopt import docopt
+import os
+from src.patch_scan import prepare_patchset
+from src.project_scan import prepare_project
+import utils.anteater_logger as antlog
+
+
+config = ConfigParser.RawConfigParser()
+config.read('anteater.conf')
+reports_dir = config.get('config', 'reports_dir')
+logger = antlog.Logger(__name__).getLogger()
+__version__ = "0.1"
+
+
+def check_dir():
+ """ Creates a directory for scan reports """
+ try:
+ os.makedirs(reports_dir)
+ logger.info('Creating reports directory: {0}'.format(reports_dir))
+ except OSError as e:
+ if not os.path.isdir(reports_dir):
+ logger.error(e)
+
+
+def main():
+ """ Main function, mostly for passing arguments """
+ check_dir()
+ arguments = docopt(__doc__, version=__version__)
+
+ if arguments['<patchset>']:
+ prepare_patchset(arguments['<project>'], arguments['<patchset>'])
+ elif arguments['<project_path>']:
+ prepare_project(arguments['<project>'], arguments['<project_path>'])
+
+
+if __name__ == "__main__":
+ main()