mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-07 12:18:46 +00:00
Constify bootstrap options
This commit is contained in:
parent
a6b36d6c3c
commit
d3b7861d1a
48
src/BootstrapOptions.php
Normal file
48
src/BootstrapOptions.php
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* ____ _ _ __ __ _ __ __ ____
|
||||||
|
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
|
||||||
|
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
|
||||||
|
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
|
||||||
|
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* @author PocketMine Team
|
||||||
|
* @link http://www.pocketmine.net/
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace pocketmine;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constants for all the command-line options that PocketMine-MP supports.
|
||||||
|
* Other options not listed here can be used to override server.properties and pocketmine.yml values temporarily.
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
final class BootstrapOptions{
|
||||||
|
|
||||||
|
private function __construct(){
|
||||||
|
//NOOP
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Disables the setup wizard on first startup */
|
||||||
|
public const NO_WIZARD = "no-wizard";
|
||||||
|
/** Force-disables console text colour and formatting */
|
||||||
|
public const DISABLE_ANSI = "disable-ansi";
|
||||||
|
/** Force-enables console text colour and formatting */
|
||||||
|
public const ENABLE_ANSI = "enable-ansi";
|
||||||
|
/** Path to look in for plugins */
|
||||||
|
public const PLUGINS = "plugins";
|
||||||
|
/** Path to store and load server data */
|
||||||
|
public const DATA = "data";
|
||||||
|
}
|
@ -267,8 +267,8 @@ JIT_WARNING
|
|||||||
ErrorToExceptionHandler::set();
|
ErrorToExceptionHandler::set();
|
||||||
|
|
||||||
$cwd = Utils::assumeNotFalse(realpath(Utils::assumeNotFalse(getcwd())));
|
$cwd = Utils::assumeNotFalse(realpath(Utils::assumeNotFalse(getcwd())));
|
||||||
$dataPath = getopt_string("data") ?? $cwd;
|
$dataPath = getopt_string(BootstrapOptions::DATA) ?? $cwd;
|
||||||
$pluginPath = getopt_string("plugins") ?? $cwd . DIRECTORY_SEPARATOR . "plugins";
|
$pluginPath = getopt_string(BootstrapOptions::PLUGINS) ?? $cwd . DIRECTORY_SEPARATOR . "plugins";
|
||||||
Filesystem::addCleanedPath($pluginPath, Filesystem::CLEAN_PATH_PLUGINS_PREFIX);
|
Filesystem::addCleanedPath($pluginPath, Filesystem::CLEAN_PATH_PLUGINS_PREFIX);
|
||||||
|
|
||||||
if(!@mkdir($dataPath, 0777, true) && !is_dir($dataPath)){
|
if(!@mkdir($dataPath, 0777, true) && !is_dir($dataPath)){
|
||||||
@ -301,10 +301,10 @@ JIT_WARNING
|
|||||||
//Logger has a dependency on timezone
|
//Logger has a dependency on timezone
|
||||||
Timezone::init();
|
Timezone::init();
|
||||||
|
|
||||||
$opts = getopt("", ["no-wizard", "enable-ansi", "disable-ansi"]);
|
$opts = getopt("", [BootstrapOptions::NO_WIZARD, BootstrapOptions::ENABLE_ANSI, BootstrapOptions::DISABLE_ANSI]);
|
||||||
if(isset($opts["enable-ansi"])){
|
if(isset($opts[BootstrapOptions::ENABLE_ANSI])){
|
||||||
Terminal::init(true);
|
Terminal::init(true);
|
||||||
}elseif(isset($opts["disable-ansi"])){
|
}elseif(isset($opts[BootstrapOptions::DISABLE_ANSI])){
|
||||||
Terminal::init(false);
|
Terminal::init(false);
|
||||||
}else{
|
}else{
|
||||||
Terminal::init();
|
Terminal::init();
|
||||||
@ -317,7 +317,7 @@ JIT_WARNING
|
|||||||
|
|
||||||
$exitCode = 0;
|
$exitCode = 0;
|
||||||
do{
|
do{
|
||||||
if(!file_exists(Path::join($dataPath, "server.properties")) && !isset($opts["no-wizard"])){
|
if(!file_exists(Path::join($dataPath, "server.properties")) && !isset($opts[BootstrapOptions::NO_WIZARD])){
|
||||||
$installer = new SetupWizard($dataPath);
|
$installer = new SetupWizard($dataPath);
|
||||||
if(!$installer->run()){
|
if(!$installer->run()){
|
||||||
$exitCode = -1;
|
$exitCode = -1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user