diff -Naru grokproject-2.0.1/grokproject/template/bin/buildout_tmpl grokproject-2.0.1.new/grokproject/template/bin/buildout_tmpl
--- grokproject-2.0.1/grokproject/template/bin/buildout_tmpl 1970-01-01 08:00:00.000000000 +0800
+++ grokproject-2.0.1.new/grokproject/template/bin/buildout_tmpl 2010-07-09 18:19:34.535708690 +0800
@@ -0,0 +1,6 @@
+#!/usr/bin/env python
+
+import zc.buildout.buildout
+
+if __name__ == '__main__':
+ zc.buildout.buildout.main()
diff -Naru grokproject-2.0.1/grokproject/template/bin/i18ncompile_tmpl grokproject-2.0.1.new/grokproject/template/bin/i18ncompile_tmpl
--- grokproject-2.0.1/grokproject/template/bin/i18ncompile_tmpl 1970-01-01 08:00:00.000000000 +0800
+++ grokproject-2.0.1.new/grokproject/template/bin/i18ncompile_tmpl 2010-07-09 19:06:35.343485835 +0800
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+
+import sys
+sys.path[0:0] = [
+ '${package_directory}/src',
+ ]
+
+import z3c.recipe.i18n.i18ncompile
+
+if __name__ == '__main__':
+ z3c.recipe.i18n.i18ncompile.main(['i18ncompile', '-l', '${package_directory}/src/${package}/locales'])
diff -Naru grokproject-2.0.1/grokproject/template/bin/i18nextract_tmpl grokproject-2.0.1.new/grokproject/template/bin/i18nextract_tmpl
--- grokproject-2.0.1/grokproject/template/bin/i18nextract_tmpl 1970-01-01 08:00:00.000000000 +0800
+++ grokproject-2.0.1.new/grokproject/template/bin/i18nextract_tmpl 2010-07-09 19:12:58.280483462 +0800
@@ -0,0 +1,17 @@
+#!/usr/bin/env python
+
+import sys
+sys.path[0:0] = [
+ '${package_directory}/src',
+ ]
+
+import os
+sys.argv[0] = os.path.abspath(sys.argv[0])
+from distutils.sysconfig import get_python_lib
+os.chdir(os.path.join(get_python_lib() + '/z3c/recipe/i18n'))
+
+
+import z3c.recipe.i18n.i18nextract
+
+if __name__ == '__main__':
+ z3c.recipe.i18n.i18nextract.main(['i18nextract', '-d', '${package}', '-s', '${package_directory}/parts/i18n/configure.zcml', '-o', '${package_directory}/src/${package}/locales', '-p', '${package}'])
diff -Naru grokproject-2.0.1/grokproject/template/bin/i18nmergeall_tmpl grokproject-2.0.1.new/grokproject/template/bin/i18nmergeall_tmpl
--- grokproject-2.0.1/grokproject/template/bin/i18nmergeall_tmpl 1970-01-01 08:00:00.000000000 +0800
+++ grokproject-2.0.1.new/grokproject/template/bin/i18nmergeall_tmpl 2010-07-09 19:13:52.852484485 +0800
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+
+import sys
+sys.path[0:0] = [
+ '${package_directory}/src',
+ ]
+
+import z3c.recipe.i18n.i18nmergeall
+
+if __name__ == '__main__':
+ z3c.recipe.i18n.i18nmergeall.main(['i18nmergeall', '-l', '${package_directory}/src/${package}/locales'])
diff -Naru grokproject-2.0.1/grokproject/template/bin/i18nstats_tmpl grokproject-2.0.1.new/grokproject/template/bin/i18nstats_tmpl
--- grokproject-2.0.1/grokproject/template/bin/i18nstats_tmpl 1970-01-01 08:00:00.000000000 +0800
+++ grokproject-2.0.1.new/grokproject/template/bin/i18nstats_tmpl 2010-07-09 19:14:30.422483255 +0800
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+
+import sys
+sys.path[0:0] = [
+ '${package_directory}/src',
+ ]
+
+import z3c.recipe.i18n.i18nstats
+
+if __name__ == '__main__':
+ z3c.recipe.i18n.i18nstats.main(['i18nstats', '-l', '${package_directory}/src/${package}/locales'])
diff -Naru grokproject-2.0.1/grokproject/template/bin/interactive_debugger_tmpl grokproject-2.0.1.new/grokproject/template/bin/interactive_debugger_tmpl
--- grokproject-2.0.1/grokproject/template/bin/interactive_debugger_tmpl 1970-01-01 08:00:00.000000000 +0800
+++ grokproject-2.0.1.new/grokproject/template/bin/interactive_debugger_tmpl 2010-07-09 19:15:00.335483401 +0800
@@ -0,0 +1,15 @@
+#!/usr/bin/env python
+
+import sys
+sys.path[0:0] = [
+ '${package_directory}/src',
+ ]
+
+import os
+sys.argv[0] = os.path.abspath(sys.argv[0])
+
+
+import grokcore.startup.startup
+
+if __name__ == '__main__':
+ grokcore.startup.startup.interactive_debug_prompt(zope_conf="${package_directory}/parts/etc/zope.conf")
diff -Naru grokproject-2.0.1/grokproject/template/bin/paster_tmpl grokproject-2.0.1.new/grokproject/template/bin/paster_tmpl
--- grokproject-2.0.1/grokproject/template/bin/paster_tmpl 1970-01-01 08:00:00.000000000 +0800
+++ grokproject-2.0.1.new/grokproject/template/bin/paster_tmpl 2010-07-09 19:15:14.306483840 +0800
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+
+import sys
+sys.path[0:0] = [
+ '${package_directory}/src',
+ ]
+
+import paste.script.command
+
+if __name__ == '__main__':
+ paste.script.command.run()
diff -Naru grokproject-2.0.1/grokproject/template/bin/python-console_tmpl grokproject-2.0.1.new/grokproject/template/bin/python-console_tmpl
--- grokproject-2.0.1/grokproject/template/bin/python-console_tmpl 1970-01-01 08:00:00.000000000 +0800
+++ grokproject-2.0.1.new/grokproject/template/bin/python-console_tmpl 2010-07-09 19:15:36.011485452 +0800
@@ -0,0 +1,32 @@
+#!/usr/bin/env python
+
+import sys
+
+sys.path[0:0] = [
+ '${package_directory}/src',
+ ]
+
+_interactive = True
+if len(sys.argv) > 1:
+ _options, _args = __import__("getopt").getopt(sys.argv[1:], 'ic:m:')
+ _interactive = False
+ for (_opt, _val) in _options:
+ if _opt == '-i':
+ _interactive = True
+ elif _opt == '-c':
+ exec _val
+ elif _opt == '-m':
+ sys.argv[1:] = _args
+ _args = []
+ __import__("runpy").run_module(
+ _val, {}, "__main__", alter_sys=True)
+
+ if _args:
+ sys.argv[:] = _args
+ __file__ = _args[0]
+ del _options, _args
+ execfile(__file__)
+
+if _interactive:
+ del _interactive
+ __import__("code").interact(banner="", local=globals())
diff -Naru grokproject-2.0.1/grokproject/template/bin/test_tmpl grokproject-2.0.1.new/grokproject/template/bin/test_tmpl
--- grokproject-2.0.1/grokproject/template/bin/test_tmpl 1970-01-01 08:00:00.000000000 +0800
+++ grokproject-2.0.1.new/grokproject/template/bin/test_tmpl 2010-07-09 22:24:50.419609459 +0800
@@ -0,0 +1,18 @@
+#!/usr/bin/env python
+
+import sys
+sys.path[0:0] = [
+ '${package_directory}/src',
+ ]
+
+import os
+sys.argv[0] = os.path.abspath(sys.argv[0])
+os.chdir('${package_directory}/parts/test')
+
+
+import zope.testing.testrunner
+
+if __name__ == '__main__':
+ zope.testing.testrunner.run((['--tests-pattern', '^f?tests$$', '-v']) + [
+ '--test-path', '${package_directory}/src',
+ ])
diff -Naru grokproject-2.0.1/grokproject/template/bin/zpasswd_tmpl grokproject-2.0.1.new/grokproject/template/bin/zpasswd_tmpl
--- grokproject-2.0.1/grokproject/template/bin/zpasswd_tmpl 1970-01-01 08:00:00.000000000 +0800
+++ grokproject-2.0.1.new/grokproject/template/bin/zpasswd_tmpl 2010-07-09 19:16:47.964483909 +0800
@@ -0,0 +1,15 @@
+#!/usr/bin/env python
+
+import sys
+sys.path[0:0] = [
+ '${package_directory}/src',
+ ]
+
+import os
+sys.argv[0] = os.path.abspath(sys.argv[0])
+
+
+import zope.password.zpasswd
+
+if __name__ == '__main__':
+ zope.password.zpasswd.main()
diff -Naru grokproject-2.0.1/grokproject/template/parts/etc/debug.ini_tmpl grokproject-2.0.1.new/grokproject/template/parts/etc/debug.ini_tmpl
--- grokproject-2.0.1/grokproject/template/parts/etc/debug.ini_tmpl 1970-01-01 08:00:00.000000000 +0800
+++ grokproject-2.0.1.new/grokproject/template/parts/etc/debug.ini_tmpl 2010-07-09 20:48:45.813208002 +0800
@@ -0,0 +1,44 @@
+[DEFAULT]
+zope_conf = %(here)s/zope.conf
+
+[server:main]
+use = egg:Paste#http
+host = 127.0.0.1
+port = 8080
+
+[pipeline:main]
+pipeline = accesslogging evalexception grok
+
+[filter:accesslogging]
+use = egg:Paste#translogger
+
+[filter:evalexception]
+use = egg:z3c.evalexception#ajax
+
+[app:grok]
+use = egg:grokcore.startup#debug
+exempt-exceptions = zope.security.interfaces.IUnauthorized
+
+# Logging configuration
+
+[loggers]
+keys = root
+
+[logger_root]
+level = INFO
+handlers = console
+
+[handlers]
+keys = console
+
+[handler_console]
+class = StreamHandler
+args = (sys.stderr,)
+level = NOTSET
+formatter = generic
+
+[formatters]
+keys = generic
+
+[formatter_generic]
+format = %(asctime)s %(levelname)s [%(name)s] %(message)s
diff -Naru grokproject-2.0.1/grokproject/template/parts/etc/deploy.ini_tmpl grokproject-2.0.1.new/grokproject/template/parts/etc/deploy.ini_tmpl
--- grokproject-2.0.1/grokproject/template/parts/etc/deploy.ini_tmpl 1970-01-01 08:00:00.000000000 +0800
+++ grokproject-2.0.1.new/grokproject/template/parts/etc/deploy.ini_tmpl 2010-07-09 20:51:04.421208097 +0800
@@ -0,0 +1,63 @@
+[DEFAULT]
+zope_conf = %(here)s/zope.conf
+
+[server:main]
+use = egg:Paste#http
+host = 127.0.0.1
+port = 8080
+
+[pipeline:main]
+pipeline = gzip grok
+
+[app:grok]
+use = egg:grokcore.startup
+
+[filter:gzip]
+use = egg:Paste#gzip
+
+# Logging configuration
+
+[loggers]
+keys = root, accesslogging, grok
+
+[logger_root]
+level = INFO
+handlers = eventlog
+
+[logger_grok]
+# Set level to WARNING or below if you want to see
+# grok template registry warnings on commandline.
+level = ERROR
+handlers = eventlog
+qualname = grok
+propagate = 0
+
+[logger_accesslogging]
+level = INFO
+handlers = accesslog
+qualname = wsgi
+propagate = 0
+
+[handlers]
+keys = eventlog, accesslog
+
+[handler_eventlog]
+class = FileHandler
+args = (os.path.join(r'${package_directory}', 'log', 'event.log'), 'a')
+level = NOTSET
+formatter = generic
+
+[handler_accesslog]
+class = FileHandler
+args = (os.path.join(r'${package_directory}', 'log', 'accesslog.log'), 'a')
+level = INFO
+formatter = accesslog
+
+[formatters]
+keys = generic, accesslog
+
+[formatter_generic]
+format = %(asctime)s %(levelname)s [%(name)s] %(message)s
+
+[formatter_accesslog]
+format = %(message)s
diff -Naru grokproject-2.0.1/grokproject/template/parts/etc/site.zcml_tmpl grokproject-2.0.1.new/grokproject/template/parts/etc/site.zcml_tmpl
--- grokproject-2.0.1/grokproject/template/parts/etc/site.zcml_tmpl 1970-01-01 08:00:00.000000000 +0800
+++ grokproject-2.0.1.new/grokproject/template/parts/etc/site.zcml_tmpl 2010-07-09 22:33:52.329609115 +0800
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -Naru grokproject-2.0.1/grokproject/template/parts/etc/zope.conf_tmpl grokproject-2.0.1.new/grokproject/template/parts/etc/zope.conf_tmpl
--- grokproject-2.0.1/grokproject/template/parts/etc/zope.conf_tmpl 1970-01-01 08:00:00.000000000 +0800
+++ grokproject-2.0.1.new/grokproject/template/parts/etc/zope.conf_tmpl 2010-07-09 20:54:36.240207655 +0800
@@ -0,0 +1,40 @@
+# Identify the component configuration used to define the site:
+site-definition ${package_directory}/parts/etc/site.zcml
+
+
+ # Standard blob storage
+
+ blob-dir ${package_directory}/var/blobstorage
+
+ path ${package_directory}/var/filestorage/Data.fs
+
+
+
+# Uncomment this if you want a blob-less standard file storage instead:
+#
+# path ${package_directory}/var/filestorage
+#
+
+# Uncomment this if you want to connect to a ZEO server instead:
+#
+# server localhost:8100
+# storage 1
+# # ZEO client cache, in bytes
+# cache-size 20MB
+# # Uncomment to have a persistent disk cache
+# #client zeo1
+#
+
+
+
+
+# logfiles are setup in the debug.ini and deploy.ini files.
+
+
+# Comment this line to disable developer mode. This should be done in
+# production
+devmode on
+
+# Extra configuration lines can be added to zope_conf's extra option. Put for
+# instance productconf sections in here.
+
diff -Naru grokproject-2.0.1/grokproject/template/parts/i18n/configure.zcml_tmpl grokproject-2.0.1.new/grokproject/template/parts/i18n/configure.zcml_tmpl
--- grokproject-2.0.1/grokproject/template/parts/i18n/configure.zcml_tmpl 1970-01-01 08:00:00.000000000 +0800
+++ grokproject-2.0.1.new/grokproject/template/parts/i18n/configure.zcml_tmpl 2010-07-09 20:48:45.785481360 +0800
@@ -0,0 +1,7 @@
+
+
+
+
+
diff -Naru grokproject-2.0.1/grokproject/templates.py grokproject-2.0.1.new/grokproject/templates.py
--- grokproject-2.0.1/grokproject/templates.py 2010-05-31 04:11:48.000000000 +0800
+++ grokproject-2.0.1.new/grokproject/templates.py 2010-07-10 12:15:20.531392557 +0800
@@ -11,6 +11,10 @@
from grokproject.utils import get_ssha_encoded_string
from grokproject.utils import create_buildout_default_file
from grokproject.utils import exist_buildout_default_file
+# three more needed by the Fedora patch
+from pkg_resources import get_distribution
+from shutil import rmtree
+import stat
GROK_RELEASE_URL_DEFAULT = 'http://grok.zope.org/releaseinfo/'
@@ -29,8 +33,9 @@
default='false', should_ask=False,
getter=get_boolean_value_for_option),
ask_var('run_buildout',
- "After creating the project area, run the buildout.",
- default=True, should_ask=False,
+ "After creating the project area, run the buildout."
+ " (The default value is True upstream but False in Fedora)",
+ default=False, should_ask=False,
getter=get_boolean_value_for_option),
ask_var('eggs_dir',
'Location where zc.buildout will look for and place packages',
@@ -73,10 +78,15 @@
version = vars.get('grokversion')
if version is None:
print "Determining current grok version..."
- # if no version was specified, we look up the current version first
- current_info_url = urlparse.urljoin(grok_release_url, 'current')
- version = self.download(current_info_url).strip().replace(
- 'grok-', '').replace('.cfg', '')
+ if vars['run_buildout']:
+ # if no version was specified, we look up the current version
+ # first
+ current_info_url = urlparse.urljoin(grok_release_url,
+ 'current')
+ version = self.download(current_info_url).strip().replace(
+ 'grok-', '').replace('.cfg', '')
+ else:
+ version = get_distribution('grok').version
if not grok_release_url.endswith('/'):
grok_release_url += '/'
@@ -124,9 +134,22 @@
return contents
def post(self, command, output_dir, vars):
- if not vars['run_buildout']:
- return
original_dir = os.getcwd()
os.chdir(vars['project'])
- run_buildout(command.verbose)
+ if not vars['run_buildout']:
+ print "Making make scripts executable properly..."
+ os.chdir('bin')
+ for f in os.listdir('.'):
+ mode = stat.S_IMODE(os.stat(f).st_mode)
+ if mode & stat.S_IRUSR:
+ mode = mode | stat.S_IXUSR
+ if mode & stat.S_IRGRP:
+ mode = mode | stat.S_IXGRP
+ if mode & stat.S_IROTH:
+ mode = mode | stat.S_IXOTH
+ os.chmod(f, mode)
+ else:
+ rmtree('bin')
+ rmtree('parts')
+ run_buildout(command.verbose)
os.chdir(original_dir)
diff -Naru grokproject-2.0.1/grokproject.egg-info/SOURCES.txt grokproject-2.0.1.new/grokproject.egg-info/SOURCES.txt
--- grokproject-2.0.1/grokproject.egg-info/SOURCES.txt 2010-07-09 22:13:44.930613198 +0800
+++ grokproject-2.0.1.new/grokproject.egg-info/SOURCES.txt 2010-07-09 22:12:47.046608239 +0800
@@ -22,6 +22,16 @@
grokproject.egg-info/not-zip-safe
grokproject.egg-info/requires.txt
grokproject.egg-info/top_level.txt
+grokproject/template/bin/buildout_tmpl
+grokproject/template/bin/i18nextract_tmpl
+grokproject/template/bin/interactive_debugger_tmpl
+grokproject/template/bin/zpasswd_tmpl
+grokproject/template/bin/i18ncompile_tmpl
+grokproject/template/bin/python-console_tmpl
+grokproject/template/bin/paster_tmpl
+grokproject/template/bin/i18nmergeall_tmpl
+grokproject/template/bin/i18nstats_tmpl
+grokproject/template/bin/test_tmpl
grokproject/template/bootstrap.py
grokproject/template/buildout.cfg_tmpl
grokproject/template/setup.py_tmpl
@@ -32,6 +42,11 @@
grokproject/template/etc/zope.conf.in_tmpl
grokproject/template/extends-cache/.directory
grokproject/template/log/.directory
+grokproject/template/parts/i18n/configure.zcml_tmpl
+grokproject/template/parts/etc/site.zcml_tmpl
+grokproject/template/parts/etc/debug.ini_tmpl
+grokproject/template/parts/etc/deploy.ini_tmpl
+grokproject/template/parts/etc/zope.conf_tmpl
grokproject/template/src/+package+/__init__.py
grokproject/template/src/+package+/app.py_tmpl
grokproject/template/src/+package+/app.txt_tmpl