mirror of
https://github.com/Sarjuuk/aowow.git
synced 2025-11-29 15:58:16 +08:00
Core/Setup
* rewritten to be able to dynamicly load it's components
- CLISetup -> checks for UtilityScripts (config, setup, dbc reader, etc.) -> checks for SetupScripts (individual sql/file generators)
- each step may now have a help prompt attached. If none are provided, the containing script may provide it's help.
- all Scripts are self contained modules. No more editing of 3+ files if some component is added/removed
* removed intermediaries FileGen & SqlGen
* functional changes
- allow providing CLI arguments to siteconfig and account UtilityScript and skip the interactive prompts
- set slot for consumable enchantment items so they are filtrable
- zones dataset is now localized and generated from GlobalStrings.lua and DungeonMap.dbc. Related data dumps removed.
- 'aowow' and 'prQueue' executables now have shebangs
WARNING - command line options have been renamed!
This commit is contained in:
85
setup/tools/utilityScript.class.php
Normal file
85
setup/tools/utilityScript.class.php
Normal file
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
|
||||
if (!defined('AOWOW_REVISION'))
|
||||
die('illegal access');
|
||||
|
||||
if (!CLI)
|
||||
die('not in cli mode');
|
||||
|
||||
trait TrSubScripts
|
||||
{
|
||||
public $defaultExecTime = 30;
|
||||
|
||||
private $generators = [];
|
||||
private $inited = false;
|
||||
|
||||
public function assignGenerators(string $usName) : bool
|
||||
{
|
||||
if (!$this->inited)
|
||||
return false;
|
||||
|
||||
// link to my subscripts
|
||||
foreach (CLISetup::getSubScripts($usName) as $cmd => [, $scriptRef])
|
||||
$this->generators[$cmd] = $scriptRef;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
abstract class UtilityScript
|
||||
{
|
||||
public $argvOpts = [];
|
||||
public $argvFlags = 0x0;
|
||||
public $optGroup = -1;
|
||||
public $childArgs = [];
|
||||
public $followupFn = '';
|
||||
|
||||
public const COMMAND = '';
|
||||
public const DESCRIPTION = '';
|
||||
public const APPENDIX = '';
|
||||
public const PROMPT = '';
|
||||
public const NOTE_START = '';
|
||||
public const NOTE_ERROR = '';
|
||||
public const NOTE_END_OK = '';
|
||||
public const NOTE_END_FAIL = '';
|
||||
|
||||
public const REQUIRED_DB = [];
|
||||
|
||||
public const USE_CLI_ARGS = false;
|
||||
public const LOCK_SITE = CLISetup::LOCK_OFF;
|
||||
|
||||
/*
|
||||
actual UtilityScript functionality
|
||||
$args[4]
|
||||
variable use parameters for passing data to followup UtilityScripts
|
||||
return
|
||||
script success
|
||||
|
||||
*/
|
||||
abstract public function run(&$args) : bool;
|
||||
|
||||
/*
|
||||
implement help output here.
|
||||
return
|
||||
true - Help has been provided. Do not process further.
|
||||
false - Fall back to help of parent container.
|
||||
*/
|
||||
public function writeCLIHelp() : bool
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
implement tests for script success here.
|
||||
$error
|
||||
list of error messages to display
|
||||
return
|
||||
test success
|
||||
*/
|
||||
public function test(?array &$error = []) : bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user