From 70e7599439f7c4108ac57e6848de44d78db03d43 Mon Sep 17 00:00:00 2001 From: Kevin Chung Date: Sat, 5 Nov 2016 02:28:43 -0400 Subject: [PATCH] Adding init_plugins (example plugin soon) Also fixing an issue in the docker functions --- CTFd/__init__.py | 4 ++++ CTFd/plugins/__init__.py | 15 +++++++++++++++ CTFd/utils.py | 1 + 3 files changed, 20 insertions(+) create mode 100644 CTFd/plugins/__init__.py diff --git a/CTFd/__init__.py b/CTFd/__init__.py index dfc636e3..5586e386 100644 --- a/CTFd/__init__.py +++ b/CTFd/__init__.py @@ -68,4 +68,8 @@ def create_app(config='CTFd.config'): app.register_blueprint(auth) app.register_blueprint(admin) + from CTFd.plugins import init_plugins + + init_plugins(app) + return app diff --git a/CTFd/plugins/__init__.py b/CTFd/plugins/__init__.py new file mode 100644 index 00000000..5cc2ffd9 --- /dev/null +++ b/CTFd/plugins/__init__.py @@ -0,0 +1,15 @@ +from CTFd.models import db, WrongKeys, Pages, Config, Tracking, Teams, Containers, ip2long, long2ip +from flask import current_app as app, g, request, redirect, url_for, session, render_template, abort +import os +import importlib +import glob + + +def init_plugins(app): + modules = glob.glob(os.path.dirname(__file__) + "/*") + for module in modules: + if os.path.isdir(module): + module = '.' + os.path.basename(module) + module = importlib.import_module(module, package='CTFd.plugins') + module.load(app) + print " * Loaded module,", module \ No newline at end of file diff --git a/CTFd/utils.py b/CTFd/utils.py index 4da0ce81..2b5f27d8 100644 --- a/CTFd/utils.py +++ b/CTFd/utils.py @@ -500,6 +500,7 @@ def run_image(name): ports_asked = [] cmd = ['docker', 'run', '-d'] + ports_used = [] for port in ports_asked: if is_port_free(port): cmd.append('-p')