comparison piecrust/commands/builtin/util.py @ 11:617191dec18e

Fixes for Windows, make `findPagePath` return a ref path.
author Ludovic Chabant <ludovic@chabant.com>
date Mon, 18 Aug 2014 16:47:44 -0700
parents 474c9882decf
children afcfecd3bf92
comparison
equal deleted inserted replaced
10:cd35d356ccce 11:617191dec18e
84 84
85 def run(self, ctx): 85 def run(self, ctx):
86 app = ctx.app 86 app = ctx.app
87 source = ctx.args.source 87 source = ctx.args.source
88 metadata = source.buildMetadata(ctx.args) 88 metadata = source.buildMetadata(ctx.args)
89 page_path = source.findPagePath(metadata, MODE_CREATING) 89 rel_path, metadata = source.findPagePath(metadata, MODE_CREATING)
90 name, ext = os.path.splitext(page_path) 90 path = source.resolveRef(rel_path)
91 name, ext = os.path.splitext(path)
91 if ext == '.*': 92 if ext == '.*':
92 page_path = '%s.%s' % (name, 93 path = '%s.%s' % (name,
93 app.config.get('site/default_auto_format')) 94 app.config.get('site/default_auto_format'))
94 if os.path.exists(page_path): 95 if os.path.exists(path):
95 raise Exception("'%s' already exists." % page_path) 96 raise Exception("'%s' already exists." % path)
96 97
97 logger.info("Creating page: %s" % os.path.relpath(page_path, app.root_dir)) 98 logger.info("Creating page: %s" % os.path.relpath(path, app.root_dir))
98 if not os.path.exists(os.path.dirname(page_path)): 99 if not os.path.exists(os.path.dirname(path)):
99 os.makedirs(os.path.dirname(page_path), 0o755) 100 os.makedirs(os.path.dirname(path), 0o755)
100 with open(page_path, 'w') as f: 101 with open(path, 'w') as f:
101 f.write('---\n') 102 f.write('---\n')
102 f.write('title: %s\n' % 'Unknown title') 103 f.write('title: %s\n' % 'Unknown title')
103 f.write('---\n') 104 f.write('---\n')
104 f.write("This is a new page!\n") 105 f.write("This is a new page!\n")
105 106