From d6d32fa67259f8f6a3a75b8064995ce90fb730ae Mon Sep 17 00:00:00 2001 From: Daniel Grana Date: Mon, 17 Nov 2008 10:33:15 +0000 Subject: [PATCH] substitute scrapy_settings template variables on startproject --HG-- extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%40382 --- scrapy/trunk/scrapy/bin/scrapy-admin.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/scrapy/trunk/scrapy/bin/scrapy-admin.py b/scrapy/trunk/scrapy/bin/scrapy-admin.py index f2dc1d5c3..8c9bd88e7 100755 --- a/scrapy/trunk/scrapy/bin/scrapy-admin.py +++ b/scrapy/trunk/scrapy/bin/scrapy-admin.py @@ -1,9 +1,11 @@ #!/usr/bin/env python """Scrapy admin script is used to create new scrapy projects and similar tasks""" +from __future__ import with_statement import os import shutil +import string from optparse import OptionParser import scrapy @@ -17,12 +19,27 @@ Available commands: Starts a new project with name 'project_name' """ +TEMPLATES = ( + 'scrapy_settings.py', + ) + +def render_templatefile(path, **kwargs): + with open(path, 'rb') as file: + raw = file.read() + + content = string.Template(raw).substitute(**kwargs) + + with open(path, 'wb') as file: + file.write(content) + + def main(): parser = OptionParser(usage=usage) opts, args = parser.parse_args() if not args: parser.print_help() + return cmd = args[0] if cmd == "startproject": @@ -30,6 +47,8 @@ def main(): project_name = args[1] project_tplpath = os.path.join(scrapy.__path__[0], "conf", "project_template") shutil.copytree(project_tplpath, project_name) + for path in TEMPLATES: + render_templatefile(os.path.join(project_name, path), project_name=project_name) else: print "scrapy-admin.py: missing project name" else: