Code

Some TODOs
[roundup.git] / roundup / init.py
index 5fb6ca44009ab0c8b2653ae2e98ad544ca708dca..9214fb614d9984c62bff26049993b85ea881e7e3 100644 (file)
@@ -4,7 +4,7 @@
 # under the same terms as Python, so long as this copyright message and
 # disclaimer are retained in their original form.
 #
-# IN NO EVENT SHALL THE BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR
+# 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.
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-# $Id: init.py,v 1.14 2001-08-07 00:15:51 richard Exp $
+# $Id: init.py,v 1.20 2002-07-14 02:05:53 richard Exp $
 
-import os, shutil, sys, errno
+__doc__ = """
+Init (create) a roundup instance.
+"""
 
-import roundup.instance
+import os, sys, errno
+
+import roundup.instance, password
+from roundup import install_util
 
 def copytree(src, dst, symlinks=0):
-    """Recursively copy a directory tree using copy2().
+    """Recursively copy a directory tree using copyDigestedFile().
 
     The destination directory os allowed to exist.
 
@@ -48,15 +53,14 @@ def copytree(src, dst, symlinks=0):
         elif os.path.isdir(srcname):
             copytree(srcname, dstname, symlinks)
         else:
-            shutil.copy2(srcname, dstname)
+            install_util.copyDigestedFile(srcname, dstname)
 
-def init(instance_home, template, backend, adminpw):
-    '''Initialise an instance using the named template and backend.
+def install(instance_home, template, backend):
+    '''Install 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
@@ -94,15 +98,43 @@ def init(instance_home, template, backend, adminpw):
 
     # now select database
     db = '''# WARNING: DO NOT EDIT THIS FILE!!!
-from roundup.backends.back_%s import Database'''%backend
+from roundup.backends.back_%s import Database, Class, FileClass, IssueClass
+'''%backend
     open(os.path.join(instance_home, 'select_db.py'), 'w').write(db)
 
+
+def initialise(instance_home, adminpw):
+    '''Initialise an instance's database
+
+    adminpw    - the password for the "admin" user
+    '''
     # now import the instance and call its init
     instance = roundup.instance.open(instance_home)
-    instance.init(adminpw)
+    instance.init(password.Password(adminpw))
 
 #
 # $Log: not supported by cvs2svn $
+# Revision 1.19  2002/05/23 01:14:20  richard
+#  . split instance initialisation into two steps, allowing config changes
+#    before the database is initialised.
+#
+# Revision 1.18  2001/11/22 15:46:42  jhermann
+# Added module docstrings to all modules.
+#
+# Revision 1.17  2001/11/12 23:17:38  jhermann
+# Code using copyDigestedFile() that passes unit tests
+#
+# Revision 1.16  2001/10/09 07:25:59  richard
+# Added the Password property type. See "pydoc roundup.password" for
+# implementation details. Have updated some of the documentation too.
+#
+# 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.
 #