diff chef.py @ 1:aaa8fb7c8918

Re-arranged modules to reduce dependencies to builtin stuff. Added `init` command.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 22 Dec 2013 08:00:24 -0800
parents a212a3f2e3ee
children f485ba500df3
line wrap: on
line diff
--- a/chef.py	Sat Dec 21 14:44:02 2013 -0800
+++ b/chef.py	Sun Dec 22 08:00:24 2013 -0800
@@ -3,9 +3,9 @@
 import logging
 import argparse
 from piecrust.app import PieCrust, PieCrustConfiguration, APP_VERSION
-from piecrust.commands.base import CommandContext
 from piecrust.environment import StandardEnvironment
 from piecrust.pathutil import SiteNotFoundError, find_app_root
+from piecrust.plugins.base import PluginLoader
 
 
 logger = logging.getLogger(__name__)
@@ -25,7 +25,9 @@
         self.theme_dir = None
         self.cache_dir = None
         self.config = PieCrustConfiguration()
-        self.env = StandardEnvironment(self)
+        self.plugin_loader = PluginLoader(self)
+        self.env = StandardEnvironment()
+        self.env.initialize(self)
 
 
 def main():
@@ -86,14 +88,9 @@
             lambda a, b: cmp(a.name, b.name))
     subparsers = parser.add_subparsers()
     for c in commands:
-        def command_runner(r):
-            if root is None and c.requires_website:
-                raise SiteNotFoundError()
-            c.run(CommandContext(r, app))
-
         p = subparsers.add_parser(c.name, help=c.description)
         c.setupParser(p)
-        p.set_defaults(func=command_runner)
+        p.set_defaults(func=c._runFromChef)
 
     # Parse the command line.
     result = parser.parse_args()
@@ -110,7 +107,7 @@
         logger.addHandler(FileHandler(result.log))
 
     # Run the command!
-    result.func(result)
+    result.func(app, result)
 
 
 if __name__ == '__main__':