From 52ea29609e89bf865ab7fc3df828648dde998f48 Mon Sep 17 00:00:00 2001 From: "Edward Z. Yang" Date: Mon, 7 Jun 2010 23:42:24 -0700 Subject: [PATCH] Fix plugin loading code, make wizard load scripts plugin. Signed-off-by: Edward Z. Yang --- bin/wizard | 4 +++- plugins/scripts/setup.py | 4 ++-- plugins/scripts/{wizard/scripts.py => wizard_scripts.py} | 2 +- run.sh | 3 +++ wizard/app/__init__.py | 3 ++- wizard/deploy.py | 3 ++- wizard/user.py | 3 ++- 7 files changed, 15 insertions(+), 7 deletions(-) rename plugins/scripts/{wizard/scripts.py => wizard_scripts.py} (99%) diff --git a/bin/wizard b/bin/wizard index d9b1814..95fbec4 100755 --- a/bin/wizard +++ b/bin/wizard @@ -35,7 +35,9 @@ import traceback # import some non-standard modules to make it fail out early import decorator -sys.path.insert(0,os.path.dirname(os.path.dirname(os.path.realpath(__file__)))) +_root_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) +sys.path.insert(0, _root_dir) +sys.path.insert(0, os.path.join(_root_dir, "plugins/scripts")) # hack to load scripts plugins for now import wizard from wizard import command, prompt diff --git a/plugins/scripts/setup.py b/plugins/scripts/setup.py index a61c2bb..0575032 100644 --- a/plugins/scripts/setup.py +++ b/plugins/scripts/setup.py @@ -10,7 +10,7 @@ setuptools.setup( url = 'http://scripts.mit.edu/', packages = setuptools.find_packages(), entry_points = { - 'wizard.user.quota': 'scripts = wizard.scripts:user_quota', - 'wizard.deploy.web': 'scripts = wizard.scripts:deploy_web', + 'wizard.user.quota': 'scripts = wizard_scripts:user_quota', + 'wizard.deploy.web': 'scripts = wizard_scripts:deploy_web', } ) diff --git a/plugins/scripts/wizard/scripts.py b/plugins/scripts/wizard_scripts.py similarity index 99% rename from plugins/scripts/wizard/scripts.py rename to plugins/scripts/wizard_scripts.py index 517ae7b..bce7b2b 100644 --- a/plugins/scripts/wizard/scripts.py +++ b/plugins/scripts/wizard_scripts.py @@ -13,7 +13,7 @@ import errno import wizard from wizard import shell, util -def deploy_web() +def deploy_web(): # try the directory homedir, _, web_path = dir.partition("/web_scripts") if web_path: diff --git a/run.sh b/run.sh index 467529e..80ba0e9 100755 --- a/run.sh +++ b/run.sh @@ -3,3 +3,6 @@ sphinx-build doc doc/_build sphinx-build -b coverage doc doc/_build && cat doc/_build/python.txt sphinx-build -b doctest doc doc/_build nosetests +python setup.py egg_info +cd plugins/scripts +python setup.py egg_info diff --git a/wizard/app/__init__.py b/wizard/app/__init__.py index 4a1793e..3defa74 100644 --- a/wizard/app/__init__.py +++ b/wizard/app/__init__.py @@ -80,13 +80,14 @@ def applications(): _applications = dict([(n,_scripts_make(n)) for n in _scripts_application_list ]) # setup plugins for dist in pkg_resources.working_set: - for appname, appclass in dist.get_entry_map("wizard.app").items(): + for appname, entry in dist.get_entry_map("wizard.app").items(): if appname in _applications: newname = dist.key + ":" + appname if newname in _applications: raise Exception("Unrecoverable application name conflict for %s from %s", appname, dist.key) logging.warning("Could not overwrite %s, used %s instead", appname, newname) appname = newname + appclass = entry.load() _applications[appname] = appclass(appname) return _applications diff --git a/wizard/deploy.py b/wizard/deploy.py index ea573c1..d40fdea 100644 --- a/wizard/deploy.py +++ b/wizard/deploy.py @@ -85,7 +85,8 @@ def web(dir, url=None): yield url return - for f in pkg_resources.iter_entry_points("deploy.web"): + for entry in pkg_resources.iter_entry_points("deploy.web"): + f = entry.load() for r in f(dir): if isinstance(r, str): r = urlparse.urlparse(r) diff --git a/wizard/user.py b/wizard/user.py index 34a28f3..81015eb 100644 --- a/wizard/user.py +++ b/wizard/user.py @@ -16,7 +16,8 @@ def quota(dir=None): if dir is None: dir = os.getcwd() unknown = (0, None) - for func in pkg_resources.iter_entry_points("wizard.user.quota"): + for entry in pkg_resources.iter_entry_points("wizard.user.quota"): + func = entry.load() r = func(dir) if r != unknown: return r -- 2.45.0