Mercurial > piecrust2
comparison piecrust/commands/builtin/scaffolding.py @ 165:8355eb9dd8fe
prepare: Show a more friendly user message when no arguments are given.
cosmetic: pep8 compliance.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Thu, 01 Jan 2015 23:01:55 -0800 |
parents | 69d5eecfa449 |
children | d5b7c2a4ec9d |
comparison
equal
deleted
inserted
replaced
164:4534ccbdd2a3 | 165:8355eb9dd8fe |
---|---|
44 logger.debug("Skipping source '%s' because it's a theme " | 44 logger.debug("Skipping source '%s' because it's a theme " |
45 "source." % src.name) | 45 "source." % src.name) |
46 continue | 46 continue |
47 p = subparsers.add_parser( | 47 p = subparsers.add_parser( |
48 src.item_name, | 48 src.item_name, |
49 help="Creates an empty page in the '%s' source." % src.name) | 49 help=("Creates an empty page in the '%s' source." % |
50 src.name)) | |
50 src.setupPrepareParser(p, app) | 51 src.setupPrepareParser(p, app) |
51 p.add_argument('-t', '--template', default='default', | 52 p.add_argument('-t', '--template', default='default', |
52 help="The template to use, which will change the " | 53 help="The template to use, which will change the " |
53 "generated text and header.") | 54 "generated text and header.") |
54 p.set_defaults(source=src) | 55 p.set_defaults(source=src) |
55 | 56 |
56 def run(self, ctx): | 57 def run(self, ctx): |
58 if not hasattr(ctx.args, 'source'): | |
59 raise Exception("No source specified. " | |
60 "Please run `chef prepare -h` for usage.") | |
61 | |
57 app = ctx.app | 62 app = ctx.app |
58 source = ctx.args.source | 63 source = ctx.args.source |
59 metadata = source.buildMetadata(ctx.args) | 64 metadata = source.buildMetadata(ctx.args) |
60 rel_path, metadata = source.findPagePath(metadata, MODE_CREATING) | 65 rel_path, metadata = source.findPagePath(metadata, MODE_CREATING) |
61 path = source.resolveRef(rel_path) | 66 path = source.resolveRef(rel_path) |
62 name, ext = os.path.splitext(path) | 67 name, ext = os.path.splitext(path) |
63 if ext == '.*': | 68 if ext == '.*': |
64 path = '%s.%s' % (name, | 69 path = '%s.%s' % ( |
70 name, | |
65 app.config.get('site/default_auto_format')) | 71 app.config.get('site/default_auto_format')) |
66 if os.path.exists(path): | 72 if os.path.exists(path): |
67 raise Exception("'%s' already exists." % path) | 73 raise Exception("'%s' already exists." % path) |
68 | 74 |
69 tpl_name = ctx.args.template | 75 tpl_name = ctx.args.template |
76 if ext is None: | 82 if ext is None: |
77 raise Exception("No such page template: %s" % tpl_name) | 83 raise Exception("No such page template: %s" % tpl_name) |
78 | 84 |
79 tpl_text = ext.getTemplate(ctx.app, tpl_name) | 85 tpl_text = ext.getTemplate(ctx.app, tpl_name) |
80 title = (metadata.get('slug') or metadata.get('path') or | 86 title = (metadata.get('slug') or metadata.get('path') or |
81 'Untitled page') | 87 'Untitled page') |
82 title = make_title(title) | 88 title = make_title(title) |
83 tokens = { | 89 tokens = { |
84 '%title%': title, | 90 '%title%': title, |
85 '%time.today%': time.strftime('%Y/%m/%d'), | 91 '%time.today%': time.strftime('%Y/%m/%d'), |
86 '%time.now%': time.strftime('%H:%M:%S')} | 92 '%time.now%': time.strftime('%H:%M:%S')} |
124 """ | 130 """ |
125 command_name = 'help' | 131 command_name = 'help' |
126 | 132 |
127 def getHelpTopics(self): | 133 def getHelpTopics(self): |
128 return [('scaffolding', | 134 return [('scaffolding', |
129 "Available templates for the 'prepare' command.")] | 135 "Available templates for the 'prepare' command.")] |
130 | 136 |
131 def getHelpTopic(self, topic, app): | 137 def getHelpTopic(self, topic, app): |
132 with io.StringIO() as tplh: | 138 with io.StringIO() as tplh: |
133 extensions = app.plugin_loader.getCommandExtensions() | 139 extensions = app.plugin_loader.getCommandExtensions() |
134 for e in extensions: | 140 for e in extensions: |
137 d = e.getTemplateDescription(app, n) | 143 d = e.getTemplateDescription(app, n) |
138 print_help_item(tplh, n, d) | 144 print_help_item(tplh, n, d) |
139 help_list = tplh.getvalue() | 145 help_list = tplh.getvalue() |
140 | 146 |
141 help_txt = ( | 147 help_txt = ( |
142 textwrap.fill("Running the 'prepare' command will let " | 148 textwrap.fill( |
143 "PieCrust setup a page for you in the correct place, with " | 149 "Running the 'prepare' command will let " |
144 "some hopefully useful default text.") + | 150 "PieCrust setup a page for you in the correct place, with " |
151 "some hopefully useful default text.") + | |
145 "\n\n" + | 152 "\n\n" + |
146 textwrap.fill("The following templates are available:") + | 153 textwrap.fill("The following templates are available:") + |
147 "\n\n" + | 154 "\n\n" + |
148 help_list) | 155 help_list) |
149 return help_txt | 156 return help_txt |