Mercurial > p > roundup > code
annotate roundup/init.py @ 2365:3a80831ecebe
If the target platform is win32, create .bat files...
...instead of *nix shell scripts.
Target platform is set to "win32" if main command is 'bdist_wininst'
or if the command is 'bdist' and it has the list of formats (from
command line or config file) and the first item on that list is wininst.
Otherwise target platform is set to current (build) platform.
| author | Alexander Smishlajev <a1s@users.sourceforge.net> |
|---|---|
| date | Wed, 26 May 2004 10:00:53 +0000 |
| parents | fc52d57c6c3e |
| children | a9e1fff1e793 |
| rev | line source |
|---|---|
|
213
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
208
diff
changeset
|
1 # |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
208
diff
changeset
|
2 # Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/) |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
208
diff
changeset
|
3 # This module is free software, and you may redistribute it and/or modify |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
208
diff
changeset
|
4 # under the same terms as Python, so long as this copyright message and |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
208
diff
changeset
|
5 # disclaimer are retained in their original form. |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
208
diff
changeset
|
6 # |
| 214 | 7 # IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR |
|
213
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
208
diff
changeset
|
8 # DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
208
diff
changeset
|
9 # OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
208
diff
changeset
|
10 # POSSIBILITY OF SUCH DAMAGE. |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
208
diff
changeset
|
11 # |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
208
diff
changeset
|
12 # BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
208
diff
changeset
|
13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
208
diff
changeset
|
14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
208
diff
changeset
|
15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
208
diff
changeset
|
16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
208
diff
changeset
|
17 # |
|
2005
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
18 # $Id: init.py,v 1.29 2004-02-11 23:55:08 richard Exp $ |
|
406
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
388
diff
changeset
|
19 |
|
2005
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
20 """Init (create) a roundup instance. |
|
406
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
388
diff
changeset
|
21 """ |
|
2005
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
22 __docformat__ = 'restructuredtext' |
|
26
c7c14960f413
Final commit of Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
25
diff
changeset
|
23 |
|
1916
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
24 import os, sys, errno, rfc822 |
|
204
c1461733cbf9
Instances are now opened by a special function...
Richard Jones <richard@users.sourceforge.net>
parents:
201
diff
changeset
|
25 |
|
270
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
26 import roundup.instance, password |
|
388
2d92f93072f9
Code using copyDigestedFile() that passes unit tests
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
270
diff
changeset
|
27 from roundup import install_util |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
28 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
29 def copytree(src, dst, symlinks=0): |
|
388
2d92f93072f9
Code using copyDigestedFile() that passes unit tests
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
270
diff
changeset
|
30 """Recursively copy a directory tree using copyDigestedFile(). |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
31 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
32 The destination directory os allowed to exist. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
33 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
34 If the optional symlinks flag is true, symbolic links in the |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
35 source tree result in symbolic links in the destination tree; if |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
36 it is false, the contents of the files pointed to by symbolic |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
37 links are copied. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
38 |
|
1103
db787cef1385
handled some XXXs
Richard Jones <richard@users.sourceforge.net>
parents:
1085
diff
changeset
|
39 This was copied from shutil.py in std lib. |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
40 """ |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
41 names = os.listdir(src) |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
42 try: |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
43 os.mkdir(dst) |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
44 except OSError, error: |
|
113
2ab86442799a
Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents:
70
diff
changeset
|
45 if error.errno != errno.EEXIST: raise |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
46 for name in names: |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
47 srcname = os.path.join(src, name) |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
48 dstname = os.path.join(dst, name) |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
49 if symlinks and os.path.islink(srcname): |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
50 linkto = os.readlink(srcname) |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
51 os.symlink(linkto, dstname) |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
52 elif os.path.isdir(srcname): |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
53 copytree(srcname, dstname, symlinks) |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
54 else: |
|
388
2d92f93072f9
Code using copyDigestedFile() that passes unit tests
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
270
diff
changeset
|
55 install_util.copyDigestedFile(srcname, dstname) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
56 |
|
1467
378081f066cc
registration is now a two-step process with confirmation from the
Richard Jones <richard@users.sourceforge.net>
parents:
1103
diff
changeset
|
57 def install(instance_home, template): |
|
738
7e093cbaaa98
split instance initialisation into two steps...
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
58 '''Install an instance using the named template and backend. |
|
208
1894a28a1e66
Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
204
diff
changeset
|
59 |
|
2005
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
60 'instance_home' |
|
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
61 the directory to place the instance data in |
|
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
62 'template' |
|
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
63 the directory holding the template to use in creating the instance data |
|
208
1894a28a1e66
Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
204
diff
changeset
|
64 |
|
1894a28a1e66
Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
204
diff
changeset
|
65 The instance_home directory will be created using the files found in |
|
1894a28a1e66
Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
204
diff
changeset
|
66 the named template (roundup.templates.<name>). A standard instance_home |
|
1894a28a1e66
Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
204
diff
changeset
|
67 contains: |
|
1894a28a1e66
Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents:
204
diff
changeset
|
68 |
|
2005
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
69 config.py |
|
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
70 simple configuration of things like the email address for the |
|
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
71 mail gateway, the mail domain, the mail host, ... |
|
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
72 dbinit.py and select_db.py |
|
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
73 defines the schema for the hyperdatabase and indicates which |
|
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
74 backend to use. |
|
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
75 interfaces.py |
|
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
76 defines the CGI Client and mail gateway MailGW classes that are |
|
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
77 used by roundup.cgi, roundup-server and roundup-mailgw. |
|
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
78 __init__.py |
|
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
79 ties together all the instance information into one interface |
|
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
80 db/ |
|
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
81 the actual database that stores the instance's data |
|
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
82 html/ |
|
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
83 the html templates that are used by the CGI Client |
|
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
84 detectors/ |
|
fc52d57c6c3e
documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents:
1916
diff
changeset
|
85 the auditor and reactor modules for this instance |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
86 ''' |
|
1591
21312a7564fd
moving templates around
Richard Jones <richard@users.sourceforge.net>
parents:
1467
diff
changeset
|
87 # At the moment, it's just a copy |
|
190
996eaf90c01e
Instance import now imports the instance using imp.load_module...
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
88 copytree(template, instance_home) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
89 |
|
1916
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
90 # rename the tempate in the TEMPLATE-INFO.txt file |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
91 ti = loadTemplateInfo(instance_home) |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
92 ti['name'] = ti['name'] + '-' + os.path.split(instance_home)[1] |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
93 saveTemplateInfo(instance_home, ti) |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
94 |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
95 |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
96 def listTemplates(dir): |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
97 ''' List all the Roundup template directories in a given directory. |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
98 |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
99 Find all the dirs that contain a TEMPLATE-INFO.txt and parse it. |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
100 |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
101 Return a list of dicts of info about the templates. |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
102 ''' |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
103 ret = {} |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
104 for idir in os.listdir(dir): |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
105 idir = os.path.join(dir, idir) |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
106 ti = loadTemplateInfo(idir) |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
107 if ti: |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
108 ret[ti['name']] = ti |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
109 return ret |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
110 |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
111 def loadTemplateInfo(dir): |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
112 ''' Attempt to load a Roundup template from the indicated directory. |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
113 |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
114 Return None if there's no template, otherwise a template info |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
115 dictionary. |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
116 ''' |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
117 ti = os.path.join(dir, 'TEMPLATE-INFO.txt') |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
118 if not os.path.exists(ti): |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
119 return None |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
120 |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
121 # load up the template's information |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
122 f = open(ti) |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
123 try: |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
124 m = rfc822.Message(open(ti)) |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
125 ti = {} |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
126 ti['name'] = m['name'] |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
127 ti['description'] = m['description'] |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
128 ti['intended-for'] = m['intended-for'] |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
129 ti['path'] = dir |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
130 finally: |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
131 f.close() |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
132 return ti |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
133 |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
134 def writeHeader(name, value): |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
135 ''' Write an rfc822-compatible header line, making it wrap reasonably |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
136 ''' |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
137 out = [name.capitalize() + ':'] |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
138 n = len(out[0]) |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
139 for word in value.split(): |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
140 if len(word) + n > 74: |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
141 out.append('\n') |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
142 n = 0 |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
143 out.append(' ' + word) |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
144 n += len(out[-1]) |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
145 return ''.join(out) + '\n' |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
146 |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
147 def saveTemplateInfo(dir, info): |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
148 ''' Save the template info (dict of values) to the TEMPLATE-INFO.txt |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
149 file in the indicated directory. |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
150 ''' |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
151 ti = os.path.join(dir, 'TEMPLATE-INFO.txt') |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
152 f = open(ti, 'w') |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
153 try: |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
154 for name in 'name description intended-for path'.split(): |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
155 f.write(writeHeader(name, info[name])) |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
156 finally: |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
157 f.close() |
|
d157b9b56ebf
implemented munging of template name for installed trackers
Richard Jones <richard@users.sourceforge.net>
parents:
1728
diff
changeset
|
158 |
|
1467
378081f066cc
registration is now a two-step process with confirmation from the
Richard Jones <richard@users.sourceforge.net>
parents:
1103
diff
changeset
|
159 def write_select_db(instance_home, backend): |
|
378081f066cc
registration is now a two-step process with confirmation from the
Richard Jones <richard@users.sourceforge.net>
parents:
1103
diff
changeset
|
160 ''' Write the file that selects the backend for the tracker |
|
378081f066cc
registration is now a two-step process with confirmation from the
Richard Jones <richard@users.sourceforge.net>
parents:
1103
diff
changeset
|
161 ''' |
|
51
3a7e5515c1bd
ok, so now "./roundup-admin init" will ask questions...
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
162 # now select database |
|
3a7e5515c1bd
ok, so now "./roundup-admin init" will ask questions...
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
163 db = '''# WARNING: DO NOT EDIT THIS FILE!!! |
|
858
2dd862af72ee
all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents:
738
diff
changeset
|
164 from roundup.backends.back_%s import Database, Class, FileClass, IssueClass |
|
2dd862af72ee
all storage-specific code (ie. backend) is now implemented by the backends
Richard Jones <richard@users.sourceforge.net>
parents:
738
diff
changeset
|
165 '''%backend |
|
190
996eaf90c01e
Instance import now imports the instance using imp.load_module...
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
166 open(os.path.join(instance_home, 'select_db.py'), 'w').write(db) |
|
51
3a7e5515c1bd
ok, so now "./roundup-admin init" will ask questions...
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
167 |
|
738
7e093cbaaa98
split instance initialisation into two steps...
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
168 |
|
7e093cbaaa98
split instance initialisation into two steps...
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
169 def initialise(instance_home, adminpw): |
|
7e093cbaaa98
split instance initialisation into two steps...
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
170 '''Initialise an instance's database |
|
7e093cbaaa98
split instance initialisation into two steps...
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
171 |
|
7e093cbaaa98
split instance initialisation into two steps...
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
172 adminpw - the password for the "admin" user |
|
7e093cbaaa98
split instance initialisation into two steps...
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
173 ''' |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
174 # now import the instance and call its init |
|
204
c1461733cbf9
Instances are now opened by a special function...
Richard Jones <richard@users.sourceforge.net>
parents:
201
diff
changeset
|
175 instance = roundup.instance.open(instance_home) |
|
270
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
176 instance.init(password.Password(adminpw)) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
177 |
|
127
0791d13baea7
Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents:
113
diff
changeset
|
178 # vim: set filetype=python ts=4 sw=4 et si |
