Mercurial > p > roundup > code
annotate roundup/demo.py @ 4763:57b9f2848cf8
Move demo.py to roundup.demo where it appears when installed.
This removes part of distutils building magic and brings
Roundup sources closer to the state how it works when
installed.
Previously I've introduced a bug where I've made "demo"
tracker home configurable and by default created in the dir
the demo.py script, which became directory of roundup.demo
module after installation. This will be fixed in the next
commit. Simplicity matters.
| author | anatoly techtonik <techtonik@gmail.com> |
|---|---|
| date | Thu, 21 Feb 2013 18:57:05 +0300 |
| parents | demo.py@a89f1e9f3ee3 |
| children | d273e59b487b |
| rev | line source |
|---|---|
|
4689
7a032013bb6a
demo.py: Make executable, remove unused glob import
anatoly techtonik <techtonik@gmail.com>
parents:
4602
diff
changeset
|
1 #!/usr/bin/env python |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
2 # |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3 # Copyright (c) 2003 Richard Jones (richard@mechanicalcat.net) |
|
2648
fe71e108d998
Main Roundup configuration class renamed to CoreConfig;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2639
diff
changeset
|
4 # |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
5 |
|
2783
5f62f3dd5aa8
fix: server was always started on default port number.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2775
diff
changeset
|
6 import errno |
|
5f62f3dd5aa8
fix: server was always started on default port number.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2775
diff
changeset
|
7 import os |
|
4734
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
8 import shutil |
|
2783
5f62f3dd5aa8
fix: server was always started on default port number.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2775
diff
changeset
|
9 import socket |
|
5f62f3dd5aa8
fix: server was always started on default port number.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2775
diff
changeset
|
10 import sys |
|
5f62f3dd5aa8
fix: server was always started on default port number.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2775
diff
changeset
|
11 import urlparse |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
12 import getopt |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
13 |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
14 from roundup import configuration |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
15 from roundup.scripts import roundup_server |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
16 |
|
4733
a0654b1283a4
demo: Make tracker home configurable.
anatoly techtonik <techtonik@gmail.com>
parents:
4729
diff
changeset
|
17 # Path where demo instance files will be stored |
|
a0654b1283a4
demo: Make tracker home configurable.
anatoly techtonik <techtonik@gmail.com>
parents:
4729
diff
changeset
|
18 TRACKER_HOME = os.path.join(os.path.dirname(__file__), 'demo') |
|
a0654b1283a4
demo: Make tracker home configurable.
anatoly techtonik <techtonik@gmail.com>
parents:
4729
diff
changeset
|
19 |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
20 def install_demo(home, backend, template): |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
21 """Install a demo tracker |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
22 |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
23 Parameters: |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
24 home: |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
25 tracker home directory path |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
26 backend: |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
27 database backend name |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
28 template: |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
29 tracker template |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
30 |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
31 """ |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
32 |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
33 from roundup import init, instance, password, backends |
|
2637
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
34 |
|
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
35 # set up the config for this tracker |
|
2648
fe71e108d998
Main Roundup configuration class renamed to CoreConfig;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2639
diff
changeset
|
36 config = configuration.CoreConfig() |
|
2637
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
37 config['TRACKER_HOME'] = home |
|
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
38 config['MAIL_DOMAIN'] = 'localhost' |
|
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
39 config['DATABASE'] = 'db' |
|
3549
f6719836e521
allow dispname to be passed to renderWith [SF#1424587]
Richard Jones <richard@users.sourceforge.net>
parents:
2881
diff
changeset
|
40 config['WEB_DEBUG'] = True |
|
2637
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
41 if backend in ('mysql', 'postgresql'): |
|
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
42 config['RDBMS_HOST'] = 'localhost' |
|
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
43 config['RDBMS_USER'] = 'rounduptest' |
|
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
44 config['RDBMS_PASSWORD'] = 'rounduptest' |
|
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
45 config['RDBMS_NAME'] = 'rounduptest' |
|
2167
4dafc87a0113
better support for demoing mysql/postgresql
Richard Jones <richard@users.sourceforge.net>
parents:
2104
diff
changeset
|
46 |
|
4734
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
47 # see if we need to clean up existing directory |
|
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
48 if os.path.exists(home): |
|
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
49 if os.path.exists(home + '/config.ini'): |
|
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
50 # clear everything out to avoid conflicts with former |
|
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
51 # extensions and detectors |
|
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
52 print "Nuking directory left from the previous demo instance." |
|
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
53 shutil.rmtree(home) |
|
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
54 else: |
|
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
55 print "Error: Refusing to nuke non-tracker directory:" |
|
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
56 print " %s" % home |
|
c67c925e4037
demo: Remove tracker home completely when nuking. This erases
anatoly techtonik <techtonik@gmail.com>
parents:
4733
diff
changeset
|
57 sys.exit(1) |
|
2167
4dafc87a0113
better support for demoing mysql/postgresql
Richard Jones <richard@users.sourceforge.net>
parents:
2104
diff
changeset
|
58 |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
59 template_dir = os.path.join('share', 'roundup', 'templates', template) |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
60 init.install(home, template_dir) |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
61 # don't have email flying around |
|
4135
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
62 nosyreaction = os.path.join(home, 'detectors', 'nosyreaction.py') |
|
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
63 if os.path.exists(nosyreaction): |
|
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
64 os.remove(nosyreaction) |
|
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
65 nosyreaction += 'c' |
|
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
66 if os.path.exists(nosyreaction): |
|
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
67 os.remove(nosyreaction) |
|
2104
f376437cd35c
more metakit fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2100
diff
changeset
|
68 init.write_select_db(home, backend) |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
69 |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
70 # figure basic params for server |
|
2881
4d7f942f97b5
demo tracker is always set up on localhost
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2856
diff
changeset
|
71 hostname = 'localhost' |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
72 # pick a fairly odd, random port |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
73 port = 8917 |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
74 while 1: |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
75 print 'Trying to set up web server on port %d ...'%port, |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
76 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
77 s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
78 try: |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
79 s.connect((hostname, port)) |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
80 except socket.error, e: |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
81 if not hasattr(e, 'args') or e.args[0] != errno.ECONNREFUSED: |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
82 raise |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
83 print 'should be ok.' |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
84 break |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
85 else: |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
86 s.close() |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
87 print 'already in use.' |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
88 port += 100 |
|
2637
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
89 config['TRACKER_WEB'] = 'http://%s:%s/demo/'%(hostname, port) |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
90 |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
91 # write the config |
|
2649
1df7d4a41da4
Buncha stuff (sorry about the large checkin):
Richard Jones <richard@users.sourceforge.net>
parents:
2648
diff
changeset
|
92 config['INSTANT_REGISTRATION'] = 1 |
|
4713
c92fcb355911
Template responsive: make demo.py work out of the box with it, by setting the static_files config.ini setting to "static".
Bernhard Reiter <bernhard@intevation.de>
parents:
4689
diff
changeset
|
93 # FIXME: Move template-specific demo initialization into the templates. |
|
c92fcb355911
Template responsive: make demo.py work out of the box with it, by setting the static_files config.ini setting to "static".
Bernhard Reiter <bernhard@intevation.de>
parents:
4689
diff
changeset
|
94 if template == 'responsive': |
|
c92fcb355911
Template responsive: make demo.py work out of the box with it, by setting the static_files config.ini setting to "static".
Bernhard Reiter <bernhard@intevation.de>
parents:
4689
diff
changeset
|
95 config['STATIC_FILES'] = "static" |
|
4759
fd90ad41d34d
- Update demo.py to be able to run jinja2 template
Pradip Caulagi <caulagi@gmail.com>
parents:
4734
diff
changeset
|
96 if template == 'jinja2': |
|
fd90ad41d34d
- Update demo.py to be able to run jinja2 template
Pradip Caulagi <caulagi@gmail.com>
parents:
4734
diff
changeset
|
97 config['TEMPLATE_ENGINE'] = 'jinja2' |
|
fd90ad41d34d
- Update demo.py to be able to run jinja2 template
Pradip Caulagi <caulagi@gmail.com>
parents:
4734
diff
changeset
|
98 config['STATIC_FILES'] = "static" |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
99 config.save(os.path.join(home, config.INI_FILE)) |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
100 |
|
2637
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
101 # open the tracker and initialise |
|
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
102 tracker = instance.open(home) |
|
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2633
diff
changeset
|
103 tracker.init(password.Password('admin')) |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
104 |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
105 # add the "demo" user |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
106 db = tracker.open('admin') |
|
4135
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
107 # FIXME: Move tracker-specific demo initialization into the tracker templates. |
|
4715
324cbd9f7d0e
minor cleanup: demo.py: removed superfluous brackets.
Bernhard Reiter <bernhard@intevation.de>
parents:
4713
diff
changeset
|
108 if template == 'minimal': |
|
4135
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
109 db.user.create(username='demo', password=password.Password('demo'), |
|
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
110 roles='User') |
|
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
111 else: |
|
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
112 db.user.create(username='demo', password=password.Password('demo'), |
|
d81ebe49a6ef
Adjust to allow to run the 'minimal' tracker, too.
Stefan Seefeld <stefan@seefeld.name>
parents:
4129
diff
changeset
|
113 realname='Demo User', roles='User') |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
114 db.commit() |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
115 db.close() |
|
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
116 |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
117 def run_demo(home): |
|
4733
a0654b1283a4
demo: Make tracker home configurable.
anatoly techtonik <techtonik@gmail.com>
parents:
4729
diff
changeset
|
118 """Run the demo tracker instance from its ``home`` directory""" |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
119 cfg = configuration.CoreConfig(home) |
|
2783
5f62f3dd5aa8
fix: server was always started on default port number.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2775
diff
changeset
|
120 url = cfg["TRACKER_WEB"] |
|
5f62f3dd5aa8
fix: server was always started on default port number.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2775
diff
changeset
|
121 hostname, port = urlparse.urlparse(url)[1].split(':') |
|
5f62f3dd5aa8
fix: server was always started on default port number.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2775
diff
changeset
|
122 port = int(port) |
|
1868
1545a36ae887
Use roundup_server script in demo.py to reduce duplication
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1727
diff
changeset
|
123 success_message = '''Server running - connect to: |
|
4602
19490d84802b
demo.py: Fix self-referencing names
anatoly techtonik <techtonik@gmail.com>
parents:
4428
diff
changeset
|
124 %(url)s |
|
1868
1545a36ae887
Use roundup_server script in demo.py to reduce duplication
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1727
diff
changeset
|
125 1. Log in as "demo"/"demo" or "admin"/"admin". |
|
1545a36ae887
Use roundup_server script in demo.py to reduce duplication
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1727
diff
changeset
|
126 2. Hit Control-C to stop the server. |
|
4602
19490d84802b
demo.py: Fix self-referencing names
anatoly techtonik <techtonik@gmail.com>
parents:
4428
diff
changeset
|
127 3. Re-start the server by running "%(script)s" again. |
|
19490d84802b
demo.py: Fix self-referencing names
anatoly techtonik <techtonik@gmail.com>
parents:
4428
diff
changeset
|
128 4. Re-initialise the server by running "%(script)s nuke". |
|
3868
483c3e335a54
print instructions for modifying demo tracker URL
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3647
diff
changeset
|
129 |
|
483c3e335a54
print instructions for modifying demo tracker URL
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3647
diff
changeset
|
130 Demo tracker is set up to be accessed by localhost browser. If you |
|
483c3e335a54
print instructions for modifying demo tracker URL
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3647
diff
changeset
|
131 run demo on a server host, please stop the demo, open file |
|
4733
a0654b1283a4
demo: Make tracker home configurable.
anatoly techtonik <techtonik@gmail.com>
parents:
4729
diff
changeset
|
132 "%(datadir)s/config.ini" with your editor, change the host name in the "web" |
|
3868
483c3e335a54
print instructions for modifying demo tracker URL
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3647
diff
changeset
|
133 option in section "[tracker]", save the file, then re-run the demo |
|
4428
e04f4c060887
clarification (inspired by Toni Meuller)
Richard Jones <richard@users.sourceforge.net>
parents:
4135
diff
changeset
|
134 program. If you want to change backend types, you must use "nuke". |
|
3868
483c3e335a54
print instructions for modifying demo tracker URL
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3647
diff
changeset
|
135 |
|
4733
a0654b1283a4
demo: Make tracker home configurable.
anatoly techtonik <techtonik@gmail.com>
parents:
4729
diff
changeset
|
136 ''' % dict(url=url, script=sys.argv[0], datadir=TRACKER_HOME) |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
137 |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
138 # disable command line processing in roundup_server |
|
4761
a89f1e9f3ee3
fix for demo.py to make it use configured host address
John Rouillard <rouilj@ieee.org>
parents:
4759
diff
changeset
|
139 sys.argv = sys.argv[:1] + ['-p', str(port), '-n', hostname, 'demo=' + home] |
|
2837
bcee075321fc
patching roundup_server.RoundupRequestHandler class directly...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2783
diff
changeset
|
140 roundup_server.run(success_message=success_message) |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
141 |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
142 |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
143 def usage(msg = ''): |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
144 |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
145 if msg: print msg |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
146 print 'Usage: %s [options] [nuke]'%sys.argv[0] |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
147 print """ |
|
4733
a0654b1283a4
demo: Make tracker home configurable.
anatoly techtonik <techtonik@gmail.com>
parents:
4729
diff
changeset
|
148 Run a demo server. Config and database files are created |
|
a0654b1283a4
demo: Make tracker home configurable.
anatoly techtonik <techtonik@gmail.com>
parents:
4729
diff
changeset
|
149 in %(datadir)s/ subdirectory of %(script)s dir. |
|
a0654b1283a4
demo: Make tracker home configurable.
anatoly techtonik <techtonik@gmail.com>
parents:
4729
diff
changeset
|
150 |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
151 Options: |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
152 -h -- print this help message |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
153 -t template -- specify the tracker template to use |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
154 -b backend -- specify the database backend to use |
|
4733
a0654b1283a4
demo: Make tracker home configurable.
anatoly techtonik <techtonik@gmail.com>
parents:
4729
diff
changeset
|
155 """ % dict(script=sys.argv[0], datadir=TRACKER_HOME) |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
156 |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
157 |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
158 def main(): |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
159 """Run a demo server for users to play with for instant gratification. |
|
1868
1545a36ae887
Use roundup_server script in demo.py to reduce duplication
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1727
diff
changeset
|
160 |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
161 Sets up the web service on localhost. Disables nosy lists. |
|
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
162 """ |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
163 |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
164 try: |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
165 opts, args = getopt.getopt(sys.argv[1:], 't:b:h') |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
166 except getopt.GetoptError, e: |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
167 usage(str(e)) |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
168 return 1 |
|
4729
3fa74b99d42d
Fix `demo -h` didn't work with existing demo, and
anatoly techtonik <techtonik@gmail.com>
parents:
4715
diff
changeset
|
169 for opt, arg in opts: |
|
3fa74b99d42d
Fix `demo -h` didn't work with existing demo, and
anatoly techtonik <techtonik@gmail.com>
parents:
4715
diff
changeset
|
170 if opt == '-h': |
|
3fa74b99d42d
Fix `demo -h` didn't work with existing demo, and
anatoly techtonik <techtonik@gmail.com>
parents:
4715
diff
changeset
|
171 usage() |
|
3fa74b99d42d
Fix `demo -h` didn't work with existing demo, and
anatoly techtonik <techtonik@gmail.com>
parents:
4715
diff
changeset
|
172 return 0 |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
173 |
|
4733
a0654b1283a4
demo: Make tracker home configurable.
anatoly techtonik <techtonik@gmail.com>
parents:
4729
diff
changeset
|
174 home = os.path.abspath(TRACKER_HOME) |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
175 nuke = args and args[0] == 'nuke' |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
176 if not os.path.exists(home) or nuke: |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
177 backend = 'anydbm' |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
178 template = 'classic' |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
179 for opt, arg in opts: |
|
4729
3fa74b99d42d
Fix `demo -h` didn't work with existing demo, and
anatoly techtonik <techtonik@gmail.com>
parents:
4715
diff
changeset
|
180 if opt == '-t': |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
181 template = arg |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
182 elif opt == '-b': |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
183 backend = arg |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
184 if (len(args) > 1 or |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
185 (len(args) == 1 and args[0] != 'nuke')): |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
186 usage() |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
187 return 1 |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
188 |
|
4733
a0654b1283a4
demo: Make tracker home configurable.
anatoly techtonik <techtonik@gmail.com>
parents:
4729
diff
changeset
|
189 print "Initializing demo instance in:\n %s" % home |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
190 install_demo(home, backend, template) |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
191 elif opts: |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
192 print "Error: Arguments are not allowed when running an existing demo." |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
193 print " Use the 'nuke' command to start over." |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
194 sys.exit(1) |
|
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
195 |
|
2775
2907abb10e55
rearranged to use the code in roundup-demo script.
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2727
diff
changeset
|
196 run_demo(home) |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
197 |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
198 |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
199 if __name__ == '__main__': |
|
4129
481cc919fda8
Allow command-line arguments for more flexible demo setup.
Stefan Seefeld <stefan@seefeld.name>
parents:
4069
diff
changeset
|
200 sys.exit(main()) |
|
1640
d0b29215aa44
pre-release stuff
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
201 |
|
2648
fe71e108d998
Main Roundup configuration class renamed to CoreConfig;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2639
diff
changeset
|
202 # vim: set filetype=python sts=4 sw=4 et si : |
