* is the execute() method. See docs/maintenance.txt for more info
* and a quick demo of how to use it.
*
+ * Terminology:
+ * params: registry of named values that may be passed to the script
+ * arg list: registry of positional values that may be passed to the script
+ * options: passed param values
+ * args: passed positional values
+ *
+ * In the command:
+ * mwscript somescript.php --foo=bar baz
+ * foo is a param
+ * bar is the option value of the option for param foo
+ * baz is the arg value at index 0 in the arg list
+ *
* @since 1.16
* @ingroup Maintenance
*/
// Const for getStdin()
const STDIN_ALL = 'all';
- // This is the desired params
+ // Array of desired/allowed params
protected $mParams = [];
// Array of mapping short parameters to long ones
protected $mShortParamsMap = [];
- // Array of desired args
+ // Array of desired/allowed args
protected $mArgList = [];
// This is the list of options that were actually passed
* @return bool
*/
protected function hasArg( $argId = 0 ) {
+ if ( func_num_args() === 0 ) {
+ wfDeprecated( __METHOD__ . ' without an $argId', '1.33' );
+ }
+
return isset( $this->mArgs[$argId] );
}
* @return mixed
*/
protected function getArg( $argId = 0, $default = null ) {
+ if ( func_num_args() === 0 ) {
+ wfDeprecated( __METHOD__ . ' without an $argId', '1.33' );
+ }
+
return $this->hasArg( $argId ) ? $this->mArgs[$argId] : $default;
}
}
$this->loadParamsAndArgs();
- $this->maybeHelp();
# Set the memory limit
# Note we need to set it again later in cache LocalSettings changed it
while ( ob_get_level() > 0 ) {
ob_end_flush();
}
-
- $this->validateParamsAndArgs();
}
/**
$this->setParam( $options, $option, $param );
} else {
$bits = explode( '=', $option, 2 );
- if ( count( $bits ) > 1 ) {
- $option = $bits[0];
- $param = $bits[1];
- } else {
- $param = 1;
- }
-
- $this->setParam( $options, $option, $param );
+ $this->setParam( $options, $bits[0], $bits[1] ?? 1 );
}
} elseif ( $arg == '-' ) {
# Lonely "-", often used to indicate stdin or stdout.
/**
* Run some validation checks on the params, etc
*/
- protected function validateParamsAndArgs() {
+ public function validateParamsAndArgs() {
$die = false;
# Check to make sure we've got all the required options
foreach ( $this->mParams as $opt => $info ) {
}
}
- if ( $die ) {
- $this->maybeHelp( true );
- }
+ $this->maybeHelp( $die );
}
/**
}
if ( isset( $this->mOptions['wiki'] ) ) {
$bits = explode( '-', $this->mOptions['wiki'], 2 );
- if ( count( $bits ) == 1 ) {
- $bits[] = '';
- }
define( 'MW_DB', $bits[0] );
- define( 'MW_PREFIX', $bits[1] );
+ define( 'MW_PREFIX', $bits[1] ?? '' );
} elseif ( isset( $this->mOptions['server'] ) ) {
// Provide the option for site admins to detect and configure
// multiple wikis based on server names. This offers --server
'user',
'page_restrictions'
];
- $db->lockTables( $read, $write, __CLASS__ . '::' . __METHOD__ );
+ $db->lockTables( $read, $write, __CLASS__ . '-searchIndexLock' );
}
/**
* @param IMaintainableDatabase &$db
*/
private function unlockSearchindex( $db ) {
- $db->unlockTables( __CLASS__ . '::' . __METHOD__ );
+ $db->unlockTables( __CLASS__ . '-searchIndexLock' );
}
/**