diff --git a/roundup/init.py b/roundup/init.py
index b2300c8bb68a5c9c3f403bbbb00c243407e5cc0d..f7de005fd8cbd3f714c408fe29839b26a274ed51 100644 (file)
--- a/roundup/init.py
+++ b/roundup/init.py
-# $Id: init.py,v 1.8 2001-07-29 07:01:39 richard Exp $
+#
+# Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/)
+# This module is free software, and you may redistribute it and/or modify
+# under the same terms as Python, so long as this copyright message and
+# disclaimer are retained in their original form.
+#
+# IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR
+# DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING
+# OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+# BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS"
+# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
+# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+#
+# $Id: init.py,v 1.16 2001-10-09 07:25:59 richard Exp $
import os, shutil, sys, errno
+import roundup.instance, password
+
def copytree(src, dst, symlinks=0):
"""Recursively copy a directory tree using copy2().
else:
shutil.copy2(srcname, dstname)
-def init(instance, template, backend, adminpw):
- ''' initialise an instance using the named template
+def init(instance_home, template, backend, adminpw):
+ '''Initialise an instance using the named template and backend.
+
+ instance_home - the directory to place the instance data in
+ template - the template to use in creating the instance data
+ backend - the database to use to store the instance data
+ adminpw - the password for the "admin" user
+
+ The instance_home directory will be created using the files found in
+ the named template (roundup.templates.<name>). A standard instance_home
+ contains:
+ . instance_config.py
+ - simple configuration of things like the email address for the
+ mail gateway, the mail domain, the mail host, ...
+ . dbinit.py and select_db.py
+ - defines the schema for the hyperdatabase and indicates which
+ backend to use.
+ . interfaces.py
+ - defines the CGI Client and mail gateway MailGW classes that are
+ used by roundup.cgi, roundup-server and roundup-mailgw.
+ . __init__.py
+ - ties together all the instance information into one interface
+ . db/
+ - the actual database that stores the instance's data
+ . html/
+ - the html templates that are used by the CGI Client
+ . detectors/
+ - the auditor and reactor modules for this instance
+
+ The html directory is typically extracted from the htmlbase module in
+ the template.
'''
# first, copy the template dir over
import roundup.templatebuilder
template_dir = os.path.split(__file__)[0]
template_name = template
template = os.path.join(template_dir, 'templates', template)
- copytree(template, instance)
+ copytree(template, instance_home)
- roundup.templatebuilder.installHtmlBase(template_name, instance)
+ roundup.templatebuilder.installHtmlBase(template_name, instance_home)
# now select database
db = '''# WARNING: DO NOT EDIT THIS FILE!!!
from roundup.backends.back_%s import Database'''%backend
- open(os.path.join(instance, 'select_db.py'), 'w').write(db)
+ open(os.path.join(instance_home, 'select_db.py'), 'w').write(db)
# now import the instance and call its init
- path, instance = os.path.split(instance)
- sys.path.insert(0, path)
- instance = __import__(instance)
- instance.init(adminpw)
+ instance = roundup.instance.open(instance_home)
+ instance.init(password.Password(adminpw))
#
# $Log: not supported by cvs2svn $
+# Revision 1.15 2001/08/07 00:24:42 richard
+# stupid typo
+#
+# Revision 1.14 2001/08/07 00:15:51 richard
+# Added the copyright/license notice to (nearly) all files at request of
+# Bizar Software.
+#
+# Revision 1.13 2001/08/06 01:20:00 richard
+# Added documentaion.
+#
+# Revision 1.12 2001/08/05 07:43:52 richard
+# Instances are now opened by a special function that generates a unique
+# module name for the instances on import time.
+#
+# Revision 1.11 2001/08/04 22:42:43 richard
+# Fixed sf.net bug #447671 - typo
+#
+# Revision 1.10 2001/08/03 01:28:33 richard
+# Used the much nicer load_package, pointed out by Steve Majewski.
+#
+# Revision 1.9 2001/08/03 00:59:34 richard
+# Instance import now imports the instance using imp.load_module so that
+# we can have instance homes of "roundup" or other existing python package
+# names.
+#
+# Revision 1.8 2001/07/29 07:01:39 richard
+# Added vim command to all source so that we don't get no steenkin' tabs :)
+#
# Revision 1.7 2001/07/28 07:59:53 richard
# Replaced errno integers with their module values.
# De-tabbed templatebuilder.py