Config stuff, docs

This commit is contained in:
2024-03-11 23:20:48 +01:00
parent 0513ab0999
commit 4150dfcf5b
4 changed files with 66 additions and 28 deletions

View File

@ -3,10 +3,60 @@
use NoccyLabs\Mercureact\Configuration;
use NoccyLabs\Mercureact\Daemon;
use PHPUnit\TextUI\Help;
require_once __DIR__."/../vendor/autoload.php";
$opts = getopt("c:");
$opts = getopt("c:C:h");
if (isset($opts['h'])) {
fwrite(STDERR, <<<HELP
Mercureact Realtime SSE Daemon
(c) 2024, NoccyLabs - Distributed under GNU GPL v3 or later.
Options:
-c config Read configuration from file
-C config Write a new configuration to file and open with editor
HELP);
exit(0);
}
if (isset($opts['C'])) {
$file = $opts['C'];
if (file_exists($file)) {
fwrite(STDERR, "File {$file} already exists. Will not overwrite.\n");
exit(1);
}
file_put_contents($file, <<<DEFAULTS
listeners:
- address: 0.0.0.0:9000
cors:
allow_origin: '*'
csp: "default-src * 'self' http: 'unsafe-eval' 'unsafe-inline'; connect-src * 'self'"
encryption:
cert: foo.pem
key: foo.key
websocket:
enable: true
publish:
overwrite_id: false
reject_duplicates: true
subscribe:
allow_anonymous: true
security:
jwt_secret: "!ChangeThisMercureHubJWTSecretKey!"
DEFAULTS);
passthru("editor ".escapeshellarg($file));
exit(1);
}
if (isset($opts['c'])) {
$config = Configuration::fromFile($opts['c']);