|
1 |
| -import 'package:args/args.dart'; |
2 |
| -import 'package:quokka_api/quokka_api.dart'; |
3 | 1 | import 'package:quokka_server/main.dart';
|
4 | 2 |
|
5 |
| -const String version = '0.0.1'; |
6 |
| - |
7 |
| -ArgParser buildParser() { |
8 |
| - return ArgParser() |
9 |
| - ..addFlag( |
10 |
| - 'help', |
11 |
| - abbr: 'h', |
12 |
| - negatable: false, |
13 |
| - help: 'Print this usage information.', |
14 |
| - ) |
15 |
| - ..addFlag( |
16 |
| - 'verbose', |
17 |
| - abbr: 'v', |
18 |
| - negatable: false, |
19 |
| - help: 'Show additional command output.', |
20 |
| - ) |
21 |
| - ..addFlag( |
22 |
| - 'version', |
23 |
| - abbr: 'V', |
24 |
| - negatable: false, |
25 |
| - help: 'Print the tool version.', |
26 |
| - ) |
27 |
| - ..addOption( |
28 |
| - 'port', |
29 |
| - abbr: 'p', |
30 |
| - help: 'The port to run the server on. Defaults to $kDefaultPort.', |
31 |
| - ) |
32 |
| - ..addOption( |
33 |
| - 'description', |
34 |
| - abbr: 'd', |
35 |
| - help: |
36 |
| - 'A description of the server. Will be displayed in the server list.', |
37 |
| - ) |
38 |
| - ..addOption('autosave', |
39 |
| - abbr: 'a', help: "Disable saving of the world automatically"); |
40 |
| -} |
41 |
| - |
42 |
| -void printUsage(ArgParser argParser) { |
43 |
| - print('Usage: server <flags> [arguments]'); |
44 |
| - print(argParser.usage); |
45 |
| -} |
46 |
| - |
47 |
| -const welcomeText = """ |
48 |
| - ____ __ __ |
49 |
| - / __ \\__ _____ / /__ / /_____ _ |
50 |
| -/ /_/ / // / _ \\/ '_// '_/ _ `/ |
51 |
| -\\___\\_\\_,_/\\___/_/\\_\\/_/\\_\\\\_,_/ |
52 |
| -"""; |
53 |
| -Future<void> main(List<String> arguments) async { |
54 |
| - final ArgParser argParser = buildParser(); |
55 |
| - try { |
56 |
| - final ArgResults results = argParser.parse(arguments); |
57 |
| - bool verbose = false, autosave = false; |
58 |
| - |
59 |
| - // Process the parsed arguments. |
60 |
| - if (results.wasParsed('help')) { |
61 |
| - printUsage(argParser); |
62 |
| - return; |
63 |
| - } |
64 |
| - if (results.wasParsed('version')) { |
65 |
| - print('server version: $version'); |
66 |
| - return; |
67 |
| - } |
68 |
| - if (results.wasParsed('verbose')) { |
69 |
| - verbose = true; |
70 |
| - } |
71 |
| - if (results.wasParsed('autosave')) { |
72 |
| - autosave = true; |
73 |
| - } |
74 |
| - String description = ''; |
75 |
| - if (results.wasParsed('description')) { |
76 |
| - description = results['description']; |
77 |
| - } |
78 |
| - print(welcomeText); |
79 |
| - final server = await QuokkaServer.load(); |
80 |
| - await server.init( |
81 |
| - port: int.tryParse(results['port'] ?? '') ?? kDefaultPort, |
82 |
| - verbose: verbose, |
83 |
| - autosave: autosave, |
84 |
| - description: description, |
85 |
| - ); |
86 |
| - await server.run(); |
87 |
| - } on FormatException catch (e) { |
88 |
| - // Print usage information if an invalid argument was provided. |
89 |
| - print(e.message); |
90 |
| - print(''); |
91 |
| - printUsage(argParser); |
92 |
| - } |
| 3 | +Future<void> main(List<String> arguments) { |
| 4 | + return runServer(arguments); |
93 | 5 | }
|
0 commit comments