Mercurial > hg > MakeItSo
changeset 107:2142ad247eb6
we can has entry points
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Fri, 14 Jan 2011 07:29:23 -0800 |
parents | 1295df1700a4 |
children | 32893f67f85d |
files | makeitso/makeitso.py |
diffstat | 1 files changed, 11 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/makeitso/makeitso.py Tue Jan 11 19:30:13 2011 -0800 +++ b/makeitso/makeitso.py Fri Jan 14 07:29:23 2011 -0800 @@ -325,14 +325,16 @@ """template for several files/directories""" def __init__(self, templates, interactive=True, variables=None): - self.interactive = interactive self.templates = [] + entry_points = get_entry_points() for template in templates: if isinstance(template, basestring): # TODO: check if the template is a [e.g] PasteScript.template entry point if os.path.isdir(template): self.templates.append(DirectoryTemplate(template, interactive=self.interactive, variables=variables)) + elif not os.path.exists(template) and template in entry_points: + self.templates.append(entry_points[template](interactive=interactive, variables=variables)) else: self.templates.append(URITemplate(template, interactive=self.interactive, variables=variables)) else: @@ -512,11 +514,16 @@ # get templates from pkg_resources # (MakeItSo! and [TODO] pastescript templates) # this should go last to ensure the module is wholly loaded -def get_entry_points(name): +def get_entry_points(): + retval = {} try: from pkg_resources import iter_entry_points for i in iter_entry_points('makeitso.templates'): - pass # :( + try: + retval[i.name] = i.load() + except: + continue except ImportError: - return None + return retval + return retval