Config stuff, docs
This commit is contained in:
		@@ -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']);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user