Mercurial > piecrust2
comparison piecrust/commands/builtin/util.py @ 879:58ae026b4c31
chef: Optimize startup time.
| author | Ludovic Chabant <ludovic@chabant.com> |
|---|---|
| date | Thu, 15 Jun 2017 22:38:05 -0700 |
| parents | 6db54bed2417 |
| children |
comparison
equal
deleted
inserted
replaced
| 878:313db67cfc35 | 879:58ae026b4c31 |
|---|---|
| 1 import os | 1 import os |
| 2 import os.path | 2 import os.path |
| 3 import shutil | |
| 4 import codecs | |
| 5 import logging | 3 import logging |
| 6 import yaml | |
| 7 from piecrust import CACHE_DIR, RESOURCES_DIR | 4 from piecrust import CACHE_DIR, RESOURCES_DIR |
| 8 from piecrust.app import CONFIG_PATH, THEME_CONFIG_PATH | 5 from piecrust.app import CONFIG_PATH, THEME_CONFIG_PATH |
| 9 from piecrust.commands.base import ChefCommand | 6 from piecrust.commands.base import ChefCommand |
| 10 | 7 |
| 11 | 8 |
| 19 self.description = "Creates a new empty PieCrust website." | 16 self.description = "Creates a new empty PieCrust website." |
| 20 self.requires_website = False | 17 self.requires_website = False |
| 21 | 18 |
| 22 def setupParser(self, parser, app): | 19 def setupParser(self, parser, app): |
| 23 parser.add_argument( | 20 parser.add_argument( |
| 24 'destination', | 21 'destination', |
| 25 help="The destination directory in which to create the website.") | 22 help="The destination directory in which to create the website.") |
| 26 | 23 |
| 27 def run(self, ctx): | 24 def run(self, ctx): |
| 28 destination = ctx.args.destination | 25 destination = ctx.args.destination |
| 29 if destination is None: | 26 if destination is None: |
| 30 destination = os.getcwd() | 27 destination = os.getcwd() |
| 39 if not os.path.isdir(os.path.dirname(config_path)): | 36 if not os.path.isdir(os.path.dirname(config_path)): |
| 40 os.makedirs(os.path.dirname(config_path), 0o755) | 37 os.makedirs(os.path.dirname(config_path), 0o755) |
| 41 | 38 |
| 42 tpl_path = os.path.join(RESOURCES_DIR, 'webinit', CONFIG_PATH) | 39 tpl_path = os.path.join(RESOURCES_DIR, 'webinit', CONFIG_PATH) |
| 43 if ctx.args.theme: | 40 if ctx.args.theme: |
| 44 tpl_path = os.path.join(RESOURCES_DIR, 'webinit', THEME_CONFIG_PATH) | 41 tpl_path = os.path.join(RESOURCES_DIR, 'webinit', |
| 42 THEME_CONFIG_PATH) | |
| 45 with open(tpl_path, 'r', encoding='utf-8') as fp: | 43 with open(tpl_path, 'r', encoding='utf-8') as fp: |
| 46 config_text = fp.read() | 44 config_text = fp.read() |
| 47 | 45 |
| 48 with open(config_path, 'w', encoding='utf-8') as fp: | 46 with open(config_path, 'w', encoding='utf-8') as fp: |
| 49 fp.write(config_text) | 47 fp.write(config_text) |
| 57 | 55 |
| 58 def setupParser(self, parser, app): | 56 def setupParser(self, parser, app): |
| 59 pass | 57 pass |
| 60 | 58 |
| 61 def run(self, ctx): | 59 def run(self, ctx): |
| 60 import shutil | |
| 61 | |
| 62 cache_dir = os.path.join(ctx.app.root_dir, CACHE_DIR) | 62 cache_dir = os.path.join(ctx.app.root_dir, CACHE_DIR) |
| 63 if cache_dir and os.path.isdir(cache_dir): | 63 if cache_dir and os.path.isdir(cache_dir): |
| 64 logger.info("Purging cache: %s" % cache_dir) | 64 logger.info("Purging cache: %s" % cache_dir) |
| 65 shutil.rmtree(cache_dir) | 65 shutil.rmtree(cache_dir) |
| 66 | 66 |
