omegga 1.0.27 → 1.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,13 +4,27 @@ Read the README first before asking questions! [Join the discord](https://discor
4
4
 
5
5
  Omegga wraps brickadia's server console to provide interactivity and utility via plugins.
6
6
 
7
+ Omegga plugins can do things like:
8
+
9
+ - Add custom chat commands
10
+ - Respond to and send chat messages
11
+ - Load bricks to player's clipboards
12
+ - Load/Clear regions of bricks
13
+ - Damage/heal players
14
+ - Give/remove weapons to players
15
+ - Change the environment
16
+ - Create/delete minigames, and join/leave players from minigames
17
+ - Teleport players, detect player's positions
18
+ - Grant players roles
19
+ - Detect when a brick with an interact component is clicked
20
+
7
21
  ## Screenshots
8
22
 
9
- [<img src="https://i.imgur.com/AqJF2T0.png" width="512"/>](https://i.imgur.com/AqJF2T0.png)
10
- [<img src="https://i.imgur.com/vGjKoB6.png" width="512"/>](https://i.imgur.com/vGjKoB6.png)
11
- [<img src="https://i.imgur.com/EhT1GBR.png" width="512"/>](https://i.imgur.com/EhT1GBR.png)
12
- [<img src="https://i.imgur.com/PLwgVlx.png" width="512"/>](https://i.imgur.com/PLwgVlx.png)
13
- [<img src="https://i.imgur.com/bCnQ5Pb.png" width="512"/>](https://i.imgur.com/bCnQ5Pb.png)
23
+ [<img src="https://i.imgur.com/AqJF2T0.png" width="256"/>](https://i.imgur.com/AqJF2T0.png)
24
+ [<img src="https://i.imgur.com/vGjKoB6.png" width="256"/>](https://i.imgur.com/vGjKoB6.png)
25
+ [<img src="https://i.imgur.com/EhT1GBR.png" width="256"/>](https://i.imgur.com/EhT1GBR.png)
26
+ [<img src="https://i.imgur.com/PLwgVlx.png" width="256"/>](https://i.imgur.com/PLwgVlx.png)
27
+ [<img src="https://i.imgur.com/bCnQ5Pb.png" width="256"/>](https://i.imgur.com/bCnQ5Pb.png)
14
28
 
15
29
  ## Install
16
30
 
@@ -26,27 +40,44 @@ You can run omegga in the [Windows Subsystem for Linux](#wsl) (I recommend Ubunt
26
40
 
27
41
  If any of the above are true, [create a new user](#creating-a-new-user) and continue from there.
28
42
 
43
+ If you need to run omegga as root, make sure your branch is `main-server` or `unstable-server`, as `main` will not work as root.
44
+
29
45
  ### Quick Setup (automatically download launcher)
30
46
 
31
- 1. Install linux if you haven't already ([Windows Install](#wsl))
47
+ 1. Install linux if you haven't already ([Windows Install](#wsl) is not that bad)
32
48
 
33
49
  2. If you type `whoami` and it says "root", [create a new user](#creating-a-new-user) and come back. This step is usually only necessary for people using a VPS.
34
50
 
35
51
  3. Run these commands (Installs a node installer, installs node, installs omegga):
36
52
 
37
- ```sh
38
- curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
39
- . ~/.nvm/nvm.sh
40
- nvm install 16
41
- npm i -g omegga
42
- ```
53
+ ```sh
54
+ # download nvm
55
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
56
+
57
+ # activate nvm
58
+ . ~/.nvm/nvm.sh
59
+
60
+ # install node version 16
61
+ nvm install 16
62
+
63
+ # install omegga
64
+ npm i -g omegga
65
+ ```
43
66
 
44
67
  4. Head over to [Running Omegga](#running) or troubleshoot below.
45
68
 
46
- ### Quick Setup Troubleshooting
69
+ ### Install Troubleshooting
47
70
 
71
+ If you are having issues running omegga, see the [troubleshooting](#troubleshooting) section for a potential fix. This section is for issues with installing.
48
72
 
49
- - If you get "`sh: 28: cd: can't cd to .`", you need to be in `bash` (and probably type `cd` to navigate out of root directory):
73
+ - If you are on Ubuntu and the output of `which npm` is `/bin/npm`
74
+ ```sh
75
+ sudo apt purge nodejs # uninstall old version of nodejs
76
+ # restart install instructions from this point
77
+ nvm install 16 # install node version 16 via nvm
78
+ ```
79
+
80
+ - If you get an error like "`sh: 28: cd: can't cd to .`", you need to be in `bash` (and probably type `cd` to navigate out of root directory):
50
81
 
51
82
  ```sh
52
83
  bash # use bash instead of sh
@@ -62,7 +93,7 @@ If any of the above are true, [create a new user](#creating-a-new-user) and cont
62
93
 
63
94
  - If you get an error like "`gyp ERR! stack Error: not found: make`" you need to install build-essential:
64
95
  ```sh
65
- sudo apt install build-essential
96
+ sudo apt install build-essential # install make
66
97
  npm i -g omegga # re-run omegga install
67
98
  ```
68
99
 
@@ -86,7 +117,7 @@ Omegga depends on:
86
117
  - linux
87
118
  - [Windows Install](https://docs.microsoft.com/en-us/windows/wsl/install-win10#manual-installation-steps) (WSL 1 or WSL 2)
88
119
  - [Windows Ubuntu](https://www.microsoft.com/en-us/p/ubuntu/9nblggh4msv6)
89
- - Node v14+ ([ubuntu/deb](https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions))
120
+ - Node v16+ ([ubuntu/deb](https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions), but `nvm` from Quick Setup is better)
90
121
  - One of:
91
122
  - `tar` (most linuxes come with this, though you can `sudo apt install tar`)
92
123
  - [Brickadia linux launcher](https://brickadia.com/download)
@@ -97,21 +128,23 @@ Omegga is installed as a global npm package
97
128
 
98
129
  Alternatively, you can use a development/local omegga.
99
130
 
100
- # clone omegga
101
- git clone https://github.com/brickadia-community/omegga.git && cd omegga
131
+ ```sh
132
+ # clone omegga
133
+ git clone https://github.com/brickadia-community/omegga.git && cd omegga
102
134
 
103
- # install dependencies
104
- npm i
135
+ # install dependencies
136
+ npm i
105
137
 
106
- # point development omegga to global npm bin
107
- npm link
138
+ # point development omegga to global npm bin
139
+ npm link
108
140
 
109
- # build the web ui, build omegga's typescript, and the plugin omegga.d.ts
110
- npm run dist
141
+ # build the web ui, build omegga's typescript, and the plugin omegga.d.ts
142
+ npm run dist
143
+ ```
111
144
 
112
145
  If you accidentally install both from Github and `npm i -g omegga`, you can run `npm unlink omegga` to stop npm from using the git one.
113
146
 
114
- If you have EACCES errors on WSL, see the [troubleshooting](#troubleshooting) section for a potential fix.
147
+ Any errors, see the [troubleshooting](#troubleshooting) section for a potential fix.
115
148
 
116
149
  ### WSL
117
150
 
@@ -149,21 +182,30 @@ useradd -m brickadia
149
182
  passwd brickadia
150
183
  # allow "sudo apt install ...." to work in this user
151
184
  usermod -aG sudo brickadia
152
- # become this user
153
- su brickadia
185
+
186
+ # become this user, navigate to user's home, and run bash
187
+ su brickadia -c "cd && bash"
188
+
189
+ # if you were root, you would be in /root (root's home) instead of /home/brickadia
190
+ # this fixes some issues when installing omegga on a VPS
154
191
  ```
155
192
 
156
193
  ## Running
157
194
 
158
195
  It's recommend to create a folder first _before_ starting your server:
159
196
 
160
- mkdir myServer && cd myServer
197
+ ```sh
198
+ # change "myServer" to "brickadia" or "server" or whatever you want
199
+ mkdir myServer && cd myServer
200
+
201
+ # this will place a folder called "myServer" in your home (cd ~)
202
+ ```
161
203
 
162
204
  To start a server, simply type the following in a linux shell after install:
163
205
 
164
206
  omegga
165
207
 
166
- Omegga will prompt for credentials as necessary and only stores the auth tokens brickadia generates on login. **Omegga does not store your password**
208
+ Omegga will prompt for credentials as necessary and only stores the auth tokens brickadia generates on login. **Omegga does not store your password**.
167
209
 
168
210
  ## Updating
169
211
 
@@ -175,7 +217,9 @@ Omegga will tell you when it's out of date. You can update with this command:
175
217
 
176
218
  - CLI config via `omegga config`
177
219
  - Omegga config is located in a generated `omegga-config.yml`
178
- - Plugin config is handled by plugin or inside the web-ui's plugins tab.
220
+ - Plugin config is managed inside the web-ui's plugins tab.
221
+ - Plugin config can also be set with `omegga set-config pluginName configName configValue`
222
+ - Plugin config can be fetched with `omegga get-config pluginName`
179
223
 
180
224
  Example available `omegga-config.yml` fields
181
225
 
@@ -197,17 +241,26 @@ Note: `BRANCH-server` branches download only server data
197
241
 
198
242
  Narrow down where the issue might be with the following options:
199
243
 
200
- - If your brickadia is crashing and omegga works, type `/debug` into omegga console or run with `omegga --debug`
201
- - If your omegga isn't starting, run with `omegga --verbose`
244
+ - If you forgot your server's password:
245
+ - terminal: `cat data/Saved/Config/LinuxServer/ServerSettings.ini | grep Password`
246
+ - If your brickadia is crashing and omegga works:
247
+ - omegga console: `/debug`
248
+ - terminal: `omegga --debug`
249
+ - If your omegga isn't starting
250
+ - terminal: `omegga --verbose`
202
251
  - If a plugin is crashing, message the plugin developer
203
- - If you are on Ubuntu and the output of `which npm` is `/bin/npm`, run `sudo apt purge nodejs` and restart install instructions from `nvm install 16`.
204
- - If you're getting an EACCES error when running `npm i -g omegga`:
252
+ - discord: #plugin-bugs
253
+ - If you are on Ubuntu and the output of `which npm` is `/bin/npm`
254
+ - terminal: `sudo apt purge nodejs` and restart install instructions from `nvm install 16`.
255
+ - If you're getting an `EACCES` error when running `npm i -g omegga`:
205
256
  1. First, try [this](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally).
206
257
  2. If that doesn't work, try this horrible bodge method for WSL:
207
258
  1. Set your WSL to WSL 2
208
259
  2. `npm i -g omegga`
209
- 3. Set your WSL back to WSL 1
210
- - If you're getting a "gyp ERR! stack Error: not found: make" install [build-essential](https://wiki.gnucash.org/wiki/Install_Build_Tools)
260
+ 3. Set your WSL back to WSL 1 (assuming you want wsl1)
261
+ - If you're getting a "`gyp ERR! stack Error: not found: make`"
262
+ - Install [build-essential](https://wiki.gnucash.org/wiki/Install_Build_Tools)
263
+
211
264
 
212
265
  ## Uninstalling
213
266
 
@@ -227,50 +280,6 @@ rm ~/.config/Epic
227
280
 
228
281
  You will have to delete your omegga data folders manually
229
282
 
230
- # Planned Features
231
-
232
- - [ ] web interface (mostly done)
233
- - [x] reload plugins
234
- - [x] enable/disable plugins live
235
- - [x] live plugin reloading/unloading state
236
- - [x] browse chat history
237
- - [x] manage plugins config
238
- - [x] start/stop server
239
- - [x] chat with players
240
- - [ ] view recent console logs
241
- - [x] view server status
242
- - [x] multiple users
243
- - [ ] roles for each user
244
- - [ ] chatcmd history
245
- - [x] track players kicked/banned
246
- - [ ] automated/scheduled server restarting (when no one is on)
247
- - [x] terminal interface
248
- - [x] reload plugins
249
- - [x] chat with players
250
- - [x] view recent console logs
251
- - [x] view server status
252
- - [ ] metrics
253
- - [ ] bricks over time charts
254
- - [x] player online time tracking
255
- - [x] chat logs
256
- - [ ] chats/hour tracking
257
- - [x] plugins in other languages via JSON RPC over stdio
258
- - [ ] LogWrangler impl for other languages
259
- - [x] events sent JSON RPC
260
- - [ ] sandboxed node plugins (more secure, more stable)
261
- - [x] running in own thread (worker)
262
- - [x] running in own vm
263
- - [x] can `require`
264
- - [x] partial omegga spec (events, some features)
265
- - [x] full omegga spec
266
- - [ ] _good_ access restrictions (ask user for permission)
267
- - [x] plugin installation by `omegga install gh:user/repo`
268
- - [x] plugin updates by `omegga update`
269
- - [ ] server config bundling (making it easier to transfer configs)
270
- - [ ] omegga.server.json
271
- - [ ] list of installed omegga plugins, versions, and download urls
272
- - [ ] list of roles, bans, role assignments
273
-
274
283
  # Plugins
275
284
 
276
285
  Plugins are located in the `plugins` directory in an omegga config folder
@@ -285,19 +294,38 @@ You can install plugins with the `omegga install https://github.com/user/repo` c
285
294
 
286
295
  You can install plugins using a shorthand `omegga install gh:user/repo` which will install the plugin located at `https://github.com/user/omegga-repo`
287
296
 
297
+ This is the recommended way of installing plugins as it automatically runs a setup script when present.
298
+
288
299
  ### Manual Installation
289
300
 
290
- Usually you can run `git clone https://github.com/user/repo` inside your `plugins` folder (created when you run `omegga` for the first time):
301
+ You can clone a plugin's github repo inside the `plugins` folder (created when you run `omegga` for the first time):
291
302
 
292
303
  - `cd plugins` to navigate to plugins folder
304
+ - `git clone https://github.com/user/repo` to download the plugin
293
305
  - Make sure to read the plugin's README file for after-install instructions
294
306
 
295
307
  ## Updating Plugins
296
308
 
297
- Plugins can be updated with `omegga update` or `omegga update pluginName anotherPluginName`
309
+ Plugins can be updated with `omegga update`:
310
+
311
+ ```sh
312
+ # update all plugin
313
+ omegga update
314
+
315
+ # update plugins named "pluginName" and "anotherPluginName"
316
+ omegga update pluginName anotherPluginName
317
+ ```
298
318
 
299
319
  Plugins may also need to be updated based on the project's README file.
300
320
 
321
+ ## Uninstalling Plugins
322
+
323
+ Plugins can be installed by deleting the plugin's respective folder:
324
+
325
+ ```sh
326
+ rm -rf plugins/PLUGIN_NAME
327
+ ```
328
+
301
329
  ## Creating Plugins
302
330
 
303
331
  Plugins can be created manually using the file structure described below, or they can be initialized automatically using `omegga init-plugin`.
@@ -16,5 +16,10 @@ export declare const pluginUtil: {
16
16
  update: typeof import("./plugin").update;
17
17
  check: typeof import("./plugin").check;
18
18
  init: () => Promise<void>;
19
+ listConfig: (pluginName: string, json?: boolean) => Promise<void>;
20
+ getConfig: (pluginName: string, configName: string, json?: boolean) => Promise<void>;
21
+ setConfig: (pluginName: any, configName: string, valueString: string) => Promise<void>;
22
+ resetAllConfigs: (pluginName: any, force: any) => Promise<void>;
23
+ resetConfig: (pluginName: any, configName: string) => Promise<void>;
19
24
  };
20
25
  export declare const Terminal: typeof _Terminal;
@@ -2,10 +2,20 @@ export declare function install(plugins: string[], _options: unknown): Promise<v
2
2
  export declare function update(pluginsNames: string[], _options: unknown): Promise<void>;
3
3
  export declare function check(pluginNames: string[], _options: unknown): Promise<void>;
4
4
  declare function init(): Promise<void>;
5
+ declare function listConfig(pluginName: string, json?: boolean): Promise<void>;
6
+ declare function getConfig(pluginName: string, configName: string, json?: boolean): Promise<void>;
7
+ declare function setConfig(pluginName: any, configName: string, valueString: string): Promise<void>;
8
+ declare function resetAllConfigs(pluginName: any, force: any): Promise<void>;
9
+ declare function resetConfig(pluginName: any, configName: string): Promise<void>;
5
10
  declare const _default: {
6
11
  install: typeof install;
7
12
  update: typeof update;
8
13
  check: typeof check;
9
14
  init: typeof init;
15
+ listConfig: typeof listConfig;
16
+ getConfig: typeof getConfig;
17
+ setConfig: typeof setConfig;
18
+ resetAllConfigs: typeof resetAllConfigs;
19
+ resetConfig: typeof resetConfig;
10
20
  };
11
21
  export default _default;
@@ -41,6 +41,7 @@ exports.check = exports.update = exports.install = void 0;
41
41
  const logger_1 = __importDefault(require("../logger"));
42
42
  const softconfig_1 = __importDefault(require("../softconfig"));
43
43
  const config = __importStar(require("../config"));
44
+ const plugin_1 = require("../omegga/plugin");
44
45
  const child_process_1 = require("child_process");
45
46
  const fs_1 = __importDefault(require("fs"));
46
47
  const path_1 = __importDefault(require("path"));
@@ -247,7 +248,9 @@ async function install(plugins, _options) {
247
248
  if (fs_1.default.existsSync(postInstallPath)) {
248
249
  plgLog(plugin, 'Running post install script...');
249
250
  try {
251
+ verboseLog('Changing permission of', postInstallPath);
250
252
  fs_1.default.chmodSync(postInstallPath, '0755');
253
+ verboseLog('Executing bash file');
251
254
  let { stdout, stderr } = await exec(postInstallPath, {
252
255
  cwd: pluginPath,
253
256
  shell: 'bash',
@@ -594,5 +597,141 @@ async function init() {
594
597
  }
595
598
  log('Initialized', type.yellow, 'plugin', `${name}`.cyan, 'successfully!');
596
599
  }
597
- exports.default = { install, update, check, init };
600
+ function pluginLoaderFactory() {
601
+ const workDir = getWorkDir();
602
+ return new plugin_1.PluginLoader(workDir);
603
+ }
604
+ /** Loads in a plugin and it's documentation. */
605
+ async function loadPlugin(pluginName) {
606
+ const pluginLoader = pluginLoaderFactory();
607
+ const foundPluginDirectory = fs_1.default
608
+ .readdirSync(pluginLoader.path)
609
+ .find(dir => dir.toLowerCase() === pluginName.toLowerCase());
610
+ if (!foundPluginDirectory) {
611
+ err(`Plugin ${pluginName} not found! Make sure to use the plugin's directory name.`);
612
+ process.exit(1);
613
+ }
614
+ const plugin = await pluginLoader.scanPlugin(path_1.default.join(pluginLoader.path, foundPluginDirectory));
615
+ return plugin;
616
+ }
617
+ async function listConfig(pluginName, json = false) {
618
+ const plugin = await loadPlugin(pluginName);
619
+ const configDoc = plugin.getDocumentation().config;
620
+ const config = await plugin.storage.getConfig();
621
+ if (json) {
622
+ console.log(JSON.stringify(config, null, 2));
623
+ }
624
+ else {
625
+ for (const key in config) {
626
+ if (!configDoc[key])
627
+ continue; // Skip unknown config keys.
628
+ const value = config[key];
629
+ log(key.cyan, '=', ['string', 'number', 'boolean'].includes(typeof value)
630
+ ? value.toString().yellow
631
+ : JSON.stringify(value).yellow);
632
+ }
633
+ }
634
+ process.exit();
635
+ }
636
+ async function getConfig(pluginName, configName, json = false) {
637
+ const plugin = await loadPlugin(pluginName);
638
+ const configDoc = plugin.getDocumentation().config[configName];
639
+ if (configDoc === undefined) {
640
+ err('Config', configName.cyan, 'not found');
641
+ process.exit(1);
642
+ }
643
+ const config = await plugin.storage.getConfig();
644
+ if (json) {
645
+ console.log(JSON.stringify(config[configName], null, 2));
646
+ }
647
+ else {
648
+ log(config[configName]);
649
+ }
650
+ process.exit();
651
+ }
652
+ async function setConfig(pluginName, configName, valueString) {
653
+ const plugin = await loadPlugin(pluginName);
654
+ const configDoc = plugin.getDocumentation().config[configName];
655
+ if (configDoc === undefined) {
656
+ err('Config', configName.cyan, 'not found');
657
+ process.exit(1);
658
+ }
659
+ // Parse the value string into a value of the correct type for the config.
660
+ let parsed;
661
+ switch (configDoc.type) {
662
+ case 'boolean':
663
+ parsed = valueString === 'true';
664
+ break;
665
+ case 'number':
666
+ parsed = Number(valueString);
667
+ if (isNaN(parsed)) {
668
+ err('Invalid number value', valueString.yellow);
669
+ process.exit(1);
670
+ }
671
+ break;
672
+ case 'string':
673
+ parsed = valueString;
674
+ break;
675
+ case 'enum':
676
+ if (!configDoc.options.includes(valueString)) {
677
+ err('Config', configName.cyan, 'must be one of', configDoc.options.join(', ').yellow);
678
+ process.exit(1);
679
+ }
680
+ parsed = valueString;
681
+ break;
682
+ default:
683
+ err('set-context does not support config type', configDoc.type.cyan);
684
+ process.exit(1);
685
+ }
686
+ const pluginConfig = await plugin.storage.getConfig();
687
+ pluginConfig[configName] = parsed;
688
+ await plugin.storage.setConfig(pluginConfig);
689
+ log('Set config', configName.cyan, 'of plugin', plugin.getName().cyan, 'to', parsed.toString().yellow);
690
+ process.exit();
691
+ }
692
+ async function resetAllConfigs(pluginName, force) {
693
+ const plugin = await loadPlugin(pluginName);
694
+ if (!force) {
695
+ const { answer } = await (0, prompts_1.default)([
696
+ {
697
+ type: 'confirm',
698
+ name: 'answer',
699
+ message: 'Are you sure you want to reset all configs?',
700
+ initial: false,
701
+ },
702
+ ]);
703
+ if (!answer) {
704
+ log('Reset aborted.');
705
+ process.exit(1);
706
+ }
707
+ }
708
+ await plugin.storage.wipeConfig();
709
+ await plugin.storage.init();
710
+ log('Reset all configs of plugin', plugin.getName().cyan);
711
+ process.exit();
712
+ }
713
+ async function resetConfig(pluginName, configName) {
714
+ const plugin = await loadPlugin(pluginName);
715
+ const configDoc = plugin.getDocumentation().config[configName];
716
+ if (configDoc === undefined) {
717
+ err('Config', configName.cyan, 'not found');
718
+ process.exit(1);
719
+ }
720
+ const pluginConfig = await plugin.storage.getConfig();
721
+ pluginConfig[configName] = plugin.storage.getDefaultConfig()[configName];
722
+ await plugin.storage.setConfig(pluginConfig);
723
+ log('Reset config', configName.cyan, 'of plugin', plugin.getName().cyan, 'to', pluginConfig[configName]);
724
+ process.exit();
725
+ }
726
+ exports.default = {
727
+ install,
728
+ update,
729
+ check,
730
+ init,
731
+ listConfig,
732
+ getConfig,
733
+ setConfig,
734
+ resetAllConfigs,
735
+ resetConfig,
736
+ };
598
737
  //# sourceMappingURL=plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/cli/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/cli/plugin.ts"],"names":[],"mappings":"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"}
@@ -400,6 +400,9 @@ class Terminal {
400
400
  omegga.on('error', e => err('Server caught unhandled exception:\n' + e));
401
401
  omegga.on('server:stopped', () => log('Server has closed. Type', '/stop'.yellow, 'to close omegga'));
402
402
  this.rl.on('line', this.handleLine.bind(this));
403
+ // Gracefully shut down server on Ctrl+C and SIGTERM
404
+ process.on('SIGINT', () => this.handleLine('/stop'));
405
+ process.on('SIGTERM', () => this.handleLine('/stop'));
403
406
  }
404
407
  async handleLine(line) {
405
408
  if (line.startsWith('/')) {