# HG changeset patch # User Ludovic Chabant # Date 1426001685 25200 # Node ID 2823ea40cfac80029a0bd87318b7ca051c03da68 # Parent efdefe34ec89be02730c7801cdf104919195979b import: Put importer metadata on the class, and allow return values. diff -r efdefe34ec89 -r 2823ea40cfac piecrust/commands/builtin/util.py --- a/piecrust/commands/builtin/util.py Sun Mar 08 23:00:01 2015 -0700 +++ b/piecrust/commands/builtin/util.py Tue Mar 10 08:34:45 2015 -0700 @@ -74,6 +74,8 @@ def setupParser(self, parser, app): subparsers = parser.add_subparsers() for i in app.plugin_loader.getImporters(): + if not i.__class__.name: + raise Exception("Importer '%s' has no name set." % type(i)) p = subparsers.add_parser(i.name, help=i.description) i.setupParser(p, app) p.set_defaults(sub_func=i.checkedImportWebsite) diff -r efdefe34ec89 -r 2823ea40cfac piecrust/importing/base.py --- a/piecrust/importing/base.py Sun Mar 08 23:00:01 2015 -0700 +++ b/piecrust/importing/base.py Tue Mar 10 08:34:45 2015 -0700 @@ -9,10 +9,9 @@ class Importer(object): - def __init__(self): - self.name = None - self.description = None - self.requires_website = True + name = None + description = None + requires_website = True def setupParser(self, parser, app): raise NotImplementedError() @@ -23,8 +22,7 @@ def checkedImportWebsite(self, ctx): if ctx.app.root_dir is None and self.requires_website: raise SiteNotFoundError() - self.importWebsite(ctx.app, ctx.args) - return 0 + return self.importWebsite(ctx.app, ctx.args) class FileWalkingImporter(Importer): diff -r efdefe34ec89 -r 2823ea40cfac piecrust/importing/jekyll.py --- a/piecrust/importing/jekyll.py Sun Mar 08 23:00:01 2015 -0700 +++ b/piecrust/importing/jekyll.py Tue Mar 10 08:34:45 2015 -0700 @@ -13,10 +13,8 @@ class JekyllImporter(FileWalkingImporter): - def __init__(self): - super(JekyllImporter, self).__init__() - self.name = 'jekyll' - self.description = "Imports content from a Jekyll or Octopress blog." + name = 'jekyll' + description = "Imports content from a Jekyll or Octopress blog." def setupParser(self, parser, app): super(JekyllImporter, self).setupParser(parser, app) diff -r efdefe34ec89 -r 2823ea40cfac piecrust/importing/piecrust.py --- a/piecrust/importing/piecrust.py Sun Mar 08 23:00:01 2015 -0700 +++ b/piecrust/importing/piecrust.py Tue Mar 10 08:34:45 2015 -0700 @@ -11,11 +11,9 @@ class PieCrust1Importer(FileWalkingImporter): - def __init__(self): - super(PieCrust1Importer, self).__init__() - self.name = 'piecrust1' - self.description = "Imports content from a PieCrust 1 website." - self.requires_website = False + name = 'piecrust1' + description = "Imports content from a PieCrust 1 website." + requires_website = False def setupParser(self, parser, app): super(PieCrust1Importer, self).setupParser(parser, app)