|
30 | 30 | start_parser = p = subparsers.add_parser('start', help="Start daemon")
|
31 | 31 | p.add_argument('--log-file', metavar='FILE', type=str,
|
32 | 32 | help="Direct daemon stdout/stderr to FILE")
|
| 33 | +p.add_argument('--timeout', metavar='TIMEOUT', type=int, |
| 34 | + help="Server shutdown timeout (in seconds)") |
33 | 35 | p.add_argument('flags', metavar='FLAG', nargs='*', type=str,
|
34 | 36 | help="Regular mypy flags (precede with --)")
|
35 | 37 |
|
36 | 38 | restart_parser = p = subparsers.add_parser('restart',
|
37 | 39 | help="Restart daemon (stop or kill followed by start)")
|
38 | 40 | p.add_argument('--log-file', metavar='FILE', type=str,
|
39 | 41 | help="Direct daemon stdout/stderr to FILE")
|
| 42 | +p.add_argument('--timeout', metavar='TIMEOUT', type=int, |
| 43 | + help="Server shutdown timeout (in seconds)") |
40 | 44 | p.add_argument('flags', metavar='FLAG', nargs='*', type=str,
|
41 | 45 | help="Regular mypy flags (precede with --)")
|
42 | 46 |
|
|
63 | 67 | hang_parser = p = subparsers.add_parser('hang', help="Hang for 100 seconds")
|
64 | 68 |
|
65 | 69 | daemon_parser = p = subparsers.add_parser('daemon', help="Run daemon in foreground")
|
| 70 | +p.add_argument('--timeout', metavar='TIMEOUT', type=int, |
| 71 | + help="Server shutdown timeout (in seconds)") |
66 | 72 | p.add_argument('flags', metavar='FLAG', nargs='*', type=str,
|
67 | 73 | help="Regular mypy flags (precede with --)")
|
68 | 74 |
|
@@ -148,7 +154,8 @@ def start_server(args: argparse.Namespace) -> None:
|
148 | 154 | """Start the server from command arguments and wait for it."""
|
149 | 155 | # Lazy import so this import doesn't slow down other commands.
|
150 | 156 | from mypy.dmypy_server import daemonize, Server, process_start_options
|
151 |
| - if daemonize(Server(process_start_options(args.flags)).serve, args.log_file) != 0: |
| 157 | + if daemonize(Server(process_start_options(args.flags), timeout=args.timeout).serve, |
| 158 | + args.log_file) != 0: |
152 | 159 | sys.exit(1)
|
153 | 160 | wait_for_server()
|
154 | 161 |
|
@@ -284,7 +291,7 @@ def do_daemon(args: argparse.Namespace) -> None:
|
284 | 291 | """Serve requests in the foreground."""
|
285 | 292 | # Lazy import so this import doesn't slow down other commands.
|
286 | 293 | from mypy.dmypy_server import Server, process_start_options
|
287 |
| - Server(process_start_options(args.flags)).serve() |
| 294 | + Server(process_start_options(args.flags), timeout=args.timeout).serve() |
288 | 295 |
|
289 | 296 |
|
290 | 297 | @action(help_parser)
|
|
0 commit comments