Mercurial > p > roundup > code
annotate roundup/scripts/roundup_demo.py @ 8264:09e8d1a4c796
docs: clarify wording, fix index, add superseder link
Make superseder, messages etc. properties index entries point to the
right place.
Link to description of using Superseder in the original overview.
fix bad wording on boolean properties.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Wed, 08 Jan 2025 11:39:54 -0500 |
| parents | 0cb81ee2e572 |
| children |
| 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 |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
6 import argparse |
|
2777
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
7 |
|
4766
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
8 # --- 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
|
9 import os.path as osp |
|
8086
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
10 import sys |
|
4766
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
11 |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
12 thisdir = osp.dirname(osp.abspath(__file__)) |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
13 rootdir = osp.dirname(osp.dirname(thisdir)) |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
14 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
|
15 osp.exists(rootdir + '/roundup/__init__.py')): |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
16 # 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
|
17 sys.path.insert(0, rootdir) |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
18 # --/ |
|
86ef4ab17dc5
Run scripts (roundup_admin.py, ...) directly from checkout.
anatoly techtonik <techtonik@gmail.com>
parents:
4108
diff
changeset
|
19 |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
20 # import also verifies python version as side effect |
|
8086
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
21 from roundup import __version__ as roundup_version # noqa: E402 |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
22 from roundup import admin, configuration, demo, instance, version_check # noqa: F401 E402 |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
23 from roundup.anypy.my_input import my_input # noqa: E402 |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
24 from roundup.backends import list_backends # noqa: E402 |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
25 from roundup.i18n import _ # noqa: E402 |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
26 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
27 DEFAULT_HOME = './demo' |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
28 DEFAULT_TEMPLATE = 'classic' |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
29 DEFAULT_BACKEND = 'sqlite' |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
30 DEFAULT_PORT = 8917 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
31 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
32 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
33 def usage(home, cli, msg=''): |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
34 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
35 # massage the help. I want [directory [backend]] but there is no way to |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
36 # specify that in argparse, so replace the three positional args with |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
37 # the proper syntax. |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
38 usage = cli.format_help() % dict(locals()) |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
39 usage = usage.replace('[directory] [backend] [nuke]', |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
40 '[[directory] [backend]] [nuke]') |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
41 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
42 print("%s\n" % usage) |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
43 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
44 if msg: |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
45 print(msg) |
|
2777
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
46 |
|
8086
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
47 |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
48 def ask_for_template(default_template, templates): |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
49 template = my_input( |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
50 _('Enter tracker template to use (one of (%(template_list)s)) [%(default_template)s]: ') % |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
51 {'template_list': ','.join(templates), |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
52 'default_template': default_template}) |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
53 |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
54 if not template: |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
55 template = default_template |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
56 elif template not in templates: |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
57 print("Unknown template: %s. Exiting." % template) |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
58 return None |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
59 |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
60 return template |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
61 |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
62 |
|
2777
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
63 def run(): |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
64 templates = admin.AdminTool().listTemplates().keys() |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
65 backends = list_backends() |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
66 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
67 cli = argparse.ArgumentParser( |
|
8086
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
68 description=""" |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
69 Instant gratification demo - Roundup Issue Tracker |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
70 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
71 Run a demo server. Config and database files are created in |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
72 'directory' (current setting/default '%(home)s') which should |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
73 not exist or should exist and already be a tracker home |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
74 directory (usually used with nuke). |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
75 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
76 'nuke' will re-initialize the tracker instance, deleting the old data. |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
77 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
78 The tracker that is created will have email notifications turned off. |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
79 """ % {"home": DEFAULT_HOME}, |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
80 epilog=("\nIf items marked with (*) are missing, they will be " |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
81 "asked for interactively when setting up the tracker."), |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
82 formatter_class=argparse.RawTextHelpFormatter, |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
83 add_help=True) |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
84 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
85 cli.add_argument('-B', '--bind_address', |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
86 default="127.0.0.1", |
|
8086
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
87 help=("Choose address for server to listen at.\n" |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
88 "Use 0.0.0.0 to bind to all addreses. Use\n" |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
89 "the external name of the computer to bind to\n" |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
90 "the external host interface.\n" |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
91 "Default: %(default)s.\n\n")) |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
92 cli.add_argument('-b', '--backend_db', |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
93 choices=backends, |
|
8086
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
94 help=("Choose backend database. Default: %s.\n\n" % |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
95 DEFAULT_BACKEND)) |
|
7926
05f36a527a45
feat: allow setting URL hostname with -H option to roundup-demo
John Rouillard <rouilj@ieee.org>
parents:
7925
diff
changeset
|
96 cli.add_argument('-H', '--hostname', |
|
05f36a527a45
feat: allow setting URL hostname with -H option to roundup-demo
John Rouillard <rouilj@ieee.org>
parents:
7925
diff
changeset
|
97 default="localhost", |
|
8086
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
98 help=("Choose hostname for the server.\n" |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
99 "Default: %(default)s.\n\n" |
|
7926
05f36a527a45
feat: allow setting URL hostname with -H option to roundup-demo
John Rouillard <rouilj@ieee.org>
parents:
7925
diff
changeset
|
100 )) |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
101 cli.add_argument('-t', '--template', |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
102 choices=templates, |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
103 help="Use specified template. (*)\n\n") |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
104 cli.add_argument('-p', '--port', |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
105 type=int, |
|
8086
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
106 help=("Listen at this port. Default: search for\n" |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
107 "open port starting at %s\n\n" % DEFAULT_PORT)) |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
108 cli.add_argument('-P', '--urlport', |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
109 type=int, |
|
8086
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
110 help=("Set docker external port. If using\n" |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
111 " docker ... -p 9090:8917 ...\n" |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
112 "this should be set to 9090.\n" |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
113 "Default: as selected by --port\n\n")) |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
114 cli.add_argument('-V', '--version', action='version', |
|
8086
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
115 version='Roundup version %s' % roundup_version, |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
116 help=( |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
117 "Show program's version number: %s and exit\n" % |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
118 roundup_version)) |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
119 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
120 cli.add_argument('directory', nargs='?', |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
121 help="Create home for tracker in directory. (*)\n") |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
122 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
123 # add 'nuke' to choices so backend will accept nuke if only 2 args. |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
124 choices = backends + ['nuke'] |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
125 cli.add_argument('backend', nargs='?', metavar='backend', choices=choices, |
|
8086
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
126 help=("Choose backend database. " |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
127 "Depricated, use -b instead.\n" |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
128 "If it is used, you *must* specify directory.\n\n")) |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
129 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
130 cli.add_argument('nuke', nargs='?', metavar='nuke', choices=['nuke'], |
|
8086
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
131 help=("The word 'nuke' will delete tracker and reset.\n" |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
132 "E.G. %(prog)s -b sqlite \\ \n" |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
133 "-t classic ./mytracker nuke\n") % {"prog": sys.argv[0]}) |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
134 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
135 cli_args = cli.parse_args() |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
136 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
137 # collect all positional args in order in array to parse |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
138 # strip all None. |
|
8086
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
139 cli_args.cmd = [x for x in [cli_args.directory, cli_args.backend, cli_args.nuke] |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
140 if x is not None] |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
141 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
142 try: |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
143 nuke = cli_args.cmd[-1] == 'nuke' |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
144 if nuke: |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
145 _ignore = cli_args.cmd.pop() # remove nuke |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
146 except IndexError: |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
147 nuke = False |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
148 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
149 try: |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
150 tracker_home = cli_args.cmd[0] |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
151 except IndexError: |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
152 tracker_home = None |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
153 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
154 # invoked as demo tracker_dir sqlite [nuke] |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
155 try: |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
156 cli_backend = cli_args.cmd[1] |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
157 except IndexError: |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
158 cli_backend = None |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
159 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
160 home = tracker_home or DEFAULT_HOME |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
161 template = cli_args.template or DEFAULT_TEMPLATE |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
162 backend = cli_args.backend_db or cli_backend or DEFAULT_BACKEND |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
163 |
|
7697
c73a1177c2b2
fix: roundup-demo, interactive mode would nuke an existing tracker.
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
164 if not tracker_home: |
|
c73a1177c2b2
fix: roundup-demo, interactive mode would nuke an existing tracker.
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
165 home = my_input( |
|
c73a1177c2b2
fix: roundup-demo, interactive mode would nuke an existing tracker.
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
166 _('Enter directory path to create demo tracker [%s]: ') % home) |
|
c73a1177c2b2
fix: roundup-demo, interactive mode would nuke an existing tracker.
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
167 if not home: |
|
c73a1177c2b2
fix: roundup-demo, interactive mode would nuke an existing tracker.
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
168 home = DEFAULT_HOME |
|
c73a1177c2b2
fix: roundup-demo, interactive mode would nuke an existing tracker.
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
169 |
|
2777
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
170 # 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
|
171 try: |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
172 instance.open(home) |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
173 except configuration.NoConfigError: |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
174 nuke = True |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
175 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
176 # if we are to create the tracker, prompt for settings |
|
2777
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
177 if nuke: |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
178 # 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
|
179 # 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
|
180 # appropriate prompt for that. |
|
8086
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
181 if cli_args.template not in templates: |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
182 template = ask_for_template(template, templates) |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
183 if not template: |
|
8086
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
184 sys.exit(1) |
|
2777
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
185 # install |
|
7926
05f36a527a45
feat: allow setting URL hostname with -H option to roundup-demo
John Rouillard <rouilj@ieee.org>
parents:
7925
diff
changeset
|
186 url_port = cli_args.urlport or cli_args.port or DEFAULT_PORT |
|
2777
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
187 demo.install_demo(home, backend, |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
188 admin.AdminTool().listTemplates()[template]['path'], |
|
7926
05f36a527a45
feat: allow setting URL hostname with -H option to roundup-demo
John Rouillard <rouilj@ieee.org>
parents:
7925
diff
changeset
|
189 use_port=url_port, use_host=cli_args.hostname) |
|
8086
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
190 elif (cli_args.backend or cli_args.template or cli_args.backend_db): |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
191 # options were specified that are only useful on initialization. |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
192 usage(home, cli, msg=( |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
193 "Specifying backend or template is only allowed when\n" |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
194 "creating a tracker or with nuke.\n")) |
|
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
195 sys.exit(1) |
|
2777
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
196 # run |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
197 demo.run_demo(home, bind_addr=cli_args.bind_address, |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
7062
diff
changeset
|
198 bind_port=cli_args.port) |
|
6042
d09a1d6a3bd9
flake8 whitespace fixes; add version_check
John Rouillard <rouilj@ieee.org>
parents:
5401
diff
changeset
|
199 |
|
8086
39013eba1aaf
refactor: move template prompt to new function; ruff lint cleanups
John Rouillard <rouilj@ieee.org>
parents:
7926
diff
changeset
|
200 |
|
2777
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
201 if __name__ == '__main__': |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
202 run() |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
203 |
|
baaf90070dc4
instant-gratification script for binary distributions
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
204 # vim: set et sts=4 sw=4 : |
