Files
aowow/setup/tools/utilityScript.class.php
Sarjuuk bf184e7555 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!
2024-06-20 18:10:12 +02:00

86 lines
1.9 KiB
PHP

<?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;
}
}
?>