[Checkins] SVN: grokproject/trunk/ When there is no .buildout/default.cfg file, create it. Only put

Maurits van Rees m.van.rees at zestsoftware.nl
Fri May 2 17:32:29 EDT 2008


Log message for revision 86136:
  When there is no .buildout/default.cfg file, create it.  Only put
  eggs_directory in the created buildout.cfg file when the user does
  not have it in default.cfg yet.
  

Changed:
  U   grokproject/trunk/CHANGES.txt
  U   grokproject/trunk/grokproject/template/buildout.cfg_tmpl
  U   grokproject/trunk/grokproject/templates.py
  U   grokproject/trunk/grokproject/utils.py

-=-
Modified: grokproject/trunk/CHANGES.txt
===================================================================
--- grokproject/trunk/CHANGES.txt	2008-05-02 20:52:15 UTC (rev 86135)
+++ grokproject/trunk/CHANGES.txt	2008-05-02 21:32:29 UTC (rev 86136)
@@ -4,6 +4,10 @@
 0.8 (unreleased)
 ------------------
 
+* When there is no .buildout/default.cfg file, create it.  Only put
+  eggs_directory in the created buildout.cfg file when the user does
+  not have it in default.cfg yet.
+
 * Do not ask for eggs dir when we have a default already.
 
 * Refactor grokproject/__init__.py by moving things out into main.py,

Modified: grokproject/trunk/grokproject/template/buildout.cfg_tmpl
===================================================================
--- grokproject/trunk/grokproject/template/buildout.cfg_tmpl	2008-05-02 20:52:15 UTC (rev 86135)
+++ grokproject/trunk/grokproject/template/buildout.cfg_tmpl	2008-05-02 21:32:29 UTC (rev 86136)
@@ -4,6 +4,9 @@
 find-links = http://download.zope.org/distribution/
 newest = ${newest}
 extends = versions.cfg
+# eggs will be installed in the default buildout location
+# (see .buildout/default.cfg in your home directory)
+# unless you specify an eggs_directory option here.
 ${eggs_dir}
 versions = versions
 

Modified: grokproject/trunk/grokproject/templates.py
===================================================================
--- grokproject/trunk/grokproject/templates.py	2008-05-02 20:52:15 UTC (rev 86135)
+++ grokproject/trunk/grokproject/templates.py	2008-05-02 21:32:29 UTC (rev 86136)
@@ -11,6 +11,7 @@
 from grokproject.utils import ask_var
 from grokproject.utils import get_var
 from grokproject.utils import get_boolean_value_for_option
+from grokproject.utils import create_buildout_defaults_file
 
 VERSIONINFO_INFO_URL = 'http://grok.zope.org/releaseinfo/current'
 
@@ -73,19 +74,17 @@
         version_info_file_contents = urllib.urlopen(version_info_url).read()
         vars['version_info_file_contents'] = version_info_file_contents
 
-        input = os.path.expanduser(vars['eggs_dir'])
-        if input == buildout_default:
-            vars['eggs_dir'] = (
-                '# eggs will be installed in the default buildout location\n'
-                '# (see .buildout/default.cfg in your home directory)')
+        vars['eggs_dir'] = os.path.expanduser(vars['eggs_dir'])
+        if buildout_default is None:
+            create_buildout_defaults_file(vars['eggs_dir'])
+        buildout_default = get_buildout_default_eggs_dir()
+        if vars['eggs_dir'] == buildout_default:
+            vars['eggs_dir'] = ''
         else:
             vars['eggs_dir'] = (
                 '# Warning: when you share this buildout.cfg with friends\n'
                 '# please remove the eggs-directory line as it is hardcoded.\n'
-                '# Consider adding this to the .buildout/default.cfg in your '
-                'home directory.\n'
-                'eggs-directory = %s') % input
-
+                'eggs-directory = %s') % vars['eggs_dir']
         return vars
 
     def post(self, command, output_dir, vars):

Modified: grokproject/trunk/grokproject/utils.py
===================================================================
--- grokproject/trunk/grokproject/utils.py	2008-05-02 20:52:15 UTC (rev 86135)
+++ grokproject/trunk/grokproject/utils.py	2008-05-02 21:32:29 UTC (rev 86136)
@@ -27,6 +27,22 @@
         if var.name == name:
             return var
 
+def create_buildout_defaults_file(eggs_dir):
+    default_dir = os.path.join(HOME, '.buildout')
+    if not os.path.isdir(default_dir):
+        os.mkdir(default_dir)
+    default_cfg = os.path.join(HOME, '.buildout', 'default.cfg')
+    if not os.path.isfile(default_cfg):
+        config_file = open(default_cfg, 'w')
+        contents = """[buildout]
+#executable = python2.4
+#index = http://download.zope.org/ppix
+eggs-directory = %s
+download-directory = %s
+""" % (eggs_dir, eggs_dir)
+        config_file.write(contents)
+        config_file.close()
+
 def get_boolean_value_for_option(vars, option):
     value = vars.get(option.name)
     if value is not None:



More information about the Checkins mailing list