Mercurial > p > roundup > code
annotate roundup/scripts/roundup_demo.py @ 5432:fec18298ae02
Python 3 preparation: HTTP headers handling in roundup_server.py.
HTTP headers are handled differently in Python 3 (where they use
email.message.Message) compared to Python 2 (where they use
mimetools.Message). In some places the code needs to check which
version of the interface is available. For the common case of getting
a single header, ".get" is available in both versions, and is an alias
of ".getheader" in Python 2. (Note that the Python 3 semantics of
".get" are slightly different from those in Python 2 if there is more
than one of a given header - it returns an arbitrary one, when in
Python 2 it's specified to return the last one. Hopefully the places
using this interface rather than explicitly allowing for multiple
headers with the same name are OK with that and it shouldn't actually
occur with well-behaved clients.)
| author | Joseph Myers <jsm@polyomino.org.uk> |
|---|---|
| date | Wed, 25 Jul 2018 10:41:32 +0000 |
| parents | 4cf48ff01e04 |
| children | d09a1d6a3bd9 |
| rev | line source |
|---|---|
|
2777
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1 #! /usr/bin/env python |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
2 # |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
3 # Copyright 2004 Richard Jones (richard@mechanicalcat.net) |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
4 # |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
5 |
|
4766
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
6 DEFAULT_HOME = './demo' |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
7 DEFAULT_TEMPLATE = 'classic' |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
8 |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
9 |
|
2777
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
10 import sys |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
11 |
|
4766
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
12 |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
13 # --- patch sys.path to make sure 'import roundup' finds correct version |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
14 import os.path as osp |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
15 |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
16 thisdir = osp.dirname(osp.abspath(__file__)) |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
17 rootdir = osp.dirname(osp.dirname(thisdir)) |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
18 if (osp.exists(thisdir + '/__init__.py') and |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
19 osp.exists(rootdir + '/roundup/__init__.py')): |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
20 # the script is located inside roundup source code |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
21 sys.path.insert(0, rootdir) |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
22 # --/ |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
23 |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
24 |
|
2777
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
25 from roundup import admin, configuration, demo, instance |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
26 from roundup.i18n import _ |
|
5401
4cf48ff01e04
Python 3 preparation: replace raw_input uses.
Joseph Myers <jsm@polyomino.org.uk>
parents:
4766
diff
changeset
|
27 from roundup.anypy.my_input import my_input |
|
2777
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
28 |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
29 def run(): |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
30 home = DEFAULT_HOME |
|
4108
01e8be352fb8
Allow user to choose the tracker template for demo.
Stefan Seefeld <stefan@seefeld.name>
parents:
2777
diff
changeset
|
31 template = DEFAULT_TEMPLATE |
|
2777
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
32 nuke = sys.argv[-1] == 'nuke' |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
33 # if there is no tracker in home, force nuke |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
34 try: |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
35 instance.open(home) |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
36 except configuration.NoConfigError: |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
37 nuke = 1 |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
38 # if we are to create the tracker, prompt for home |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
39 if nuke: |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
40 if len(sys.argv) > 2: |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
41 backend = sys.argv[-2] |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
42 else: |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
43 backend = 'anydbm' |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
44 # FIXME: i'd like to have an option to abort the tracker creation |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
45 # say, by entering a single dot. but i cannot think of |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
46 # appropriate prompt for that. |
|
5401
4cf48ff01e04
Python 3 preparation: replace raw_input uses.
Joseph Myers <jsm@polyomino.org.uk>
parents:
4766
diff
changeset
|
47 home = my_input( |
|
2777
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
48 _('Enter directory path to create demo tracker [%s]: ') % home) |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
49 if not home: |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
50 home = DEFAULT_HOME |
|
4108
01e8be352fb8
Allow user to choose the tracker template for demo.
Stefan Seefeld <stefan@seefeld.name>
parents:
2777
diff
changeset
|
51 templates = admin.AdminTool().listTemplates().keys() |
|
5401
4cf48ff01e04
Python 3 preparation: replace raw_input uses.
Joseph Myers <jsm@polyomino.org.uk>
parents:
4766
diff
changeset
|
52 template = my_input( |
|
4108
01e8be352fb8
Allow user to choose the tracker template for demo.
Stefan Seefeld <stefan@seefeld.name>
parents:
2777
diff
changeset
|
53 _('Enter tracker template to use (one of (%s)) [%s]: ') % |
|
01e8be352fb8
Allow user to choose the tracker template for demo.
Stefan Seefeld <stefan@seefeld.name>
parents:
2777
diff
changeset
|
54 (','.join(templates),template)) |
|
01e8be352fb8
Allow user to choose the tracker template for demo.
Stefan Seefeld <stefan@seefeld.name>
parents:
2777
diff
changeset
|
55 if not template: |
|
01e8be352fb8
Allow user to choose the tracker template for demo.
Stefan Seefeld <stefan@seefeld.name>
parents:
2777
diff
changeset
|
56 template = DEFAULT_TEMPLATE |
|
2777
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
57 # install |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
58 demo.install_demo(home, backend, |
|
4108
01e8be352fb8
Allow user to choose the tracker template for demo.
Stefan Seefeld <stefan@seefeld.name>
parents:
2777
diff
changeset
|
59 admin.AdminTool().listTemplates()[template]['path']) |
|
2777
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
60 # run |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
61 demo.run_demo(home) |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
62 |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
63 if __name__ == '__main__': |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
64 run() |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
65 |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
66 # vim: set et sts=4 sw=4 : |
