Mercurial > libervia-backend
comparison sat/core/launcher.py @ 3282:e7e7be79fbcd
core (launcher): extra arguments can now be passed the service with `bg`, `fg` and `dbg`:
- `dbg` is an alias for `debug`
- extra arguments can be passed to the service, use `-- --help` to see them`
author | Goffi <goffi@goffi.org> |
---|---|
date | Mon, 25 May 2020 16:15:05 +0200 |
parents | a3639d6d9643 |
children | 751d8fa45ced |
comparison
equal
deleted
inserted
replaced
3281:a3639d6d9643 | 3282:e7e7be79fbcd |
---|---|
137 | 137 |
138 def parse_args(self): | 138 def parse_args(self): |
139 parser = argparse.ArgumentParser(description=f"Launch {self.APP_NAME} backend") | 139 parser = argparse.ArgumentParser(description=f"Launch {self.APP_NAME} backend") |
140 parser.set_defaults(cmd=self.cmd_background) | 140 parser.set_defaults(cmd=self.cmd_background) |
141 subparsers = parser.add_subparsers() | 141 subparsers = parser.add_subparsers() |
142 extra_help = f"arguments to pass to {self.APP_NAME} service" | |
142 | 143 |
143 bg_parser = subparsers.add_parser( | 144 bg_parser = subparsers.add_parser( |
144 'background', | 145 'background', |
145 aliases=['bg'], | 146 aliases=['bg'], |
146 help=f"run {self.APP_NAME} backend in background (as a daemon)") | 147 help=f"run {self.APP_NAME} backend in background (as a daemon)") |
148 bg_parser.add_argument('extra_args', nargs=argparse.REMAINDER, help=extra_help) | |
147 bg_parser.set_defaults(cmd=self.cmd_background) | 149 bg_parser.set_defaults(cmd=self.cmd_background) |
148 | 150 |
149 fg_parser = subparsers.add_parser( | 151 fg_parser = subparsers.add_parser( |
150 'foreground', | 152 'foreground', |
151 aliases=['fg'], | 153 aliases=['fg'], |
152 help=f"run {self.APP_NAME} backend in foreground") | 154 help=f"run {self.APP_NAME} backend in foreground") |
155 fg_parser.add_argument('extra_args', nargs=argparse.REMAINDER, help=extra_help) | |
153 fg_parser.set_defaults(cmd=self.cmd_foreground) | 156 fg_parser.set_defaults(cmd=self.cmd_foreground) |
154 | 157 |
155 dbg_parser = subparsers.add_parser( | 158 dbg_parser = subparsers.add_parser( |
156 'debug', | 159 'debug', |
160 aliases=['dbg'], | |
157 help=f"run {self.APP_NAME} backend in debug mode") | 161 help=f"run {self.APP_NAME} backend in debug mode") |
162 dbg_parser.add_argument('extra_args', nargs=argparse.REMAINDER, help=extra_help) | |
158 dbg_parser.set_defaults(cmd=self.cmd_debug) | 163 dbg_parser.set_defaults(cmd=self.cmd_debug) |
159 | 164 |
160 stop_parser = subparsers.add_parser( | 165 stop_parser = subparsers.add_parser( |
161 'stop', | 166 'stop', |
162 help=f"stop running {self.APP_NAME} backend") | 167 help=f"stop running {self.APP_NAME} backend") |
204 '--logfile', str(log_file), | 209 '--logfile', str(log_file), |
205 ] | 210 ] |
206 if twistd_opts is not None: | 211 if twistd_opts is not None: |
207 server_opts.extend(twistd_opts) | 212 server_opts.extend(twistd_opts) |
208 server_opts.append(self.APP_NAME_FILE) | 213 server_opts.append(self.APP_NAME_FILE) |
214 if args.extra_args: | |
215 try: | |
216 args.extra_args.remove('--') | |
217 except ValueError: | |
218 pass | |
219 server_opts.extend(args.extra_args) | |
209 try: | 220 try: |
210 server_options.parseOptions(server_opts) | 221 server_options.parseOptions(server_opts) |
211 except usage.error as ue: | 222 except usage.error as ue: |
212 print(server_options) | 223 print(server_options) |
213 print("%s: %s" % (sys.argv[0], ue)) | 224 print("%s: %s" % (sys.argv[0], ue)) |