jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/342067 )
Change subject: Remove implode erroneously left
......................................................................
Remove implode erroneously left
Swap some output calls to error
Don't attempt to delete if the store has had any sort of errors
Remove try/catch and unindent
Follows up Ib8d5ddf4ca95defe705a6f7db01dc6f43ca5d9db
Change-Id: I982c4ee5e7d48a07c5d8d0211d1e618d83065536
---
M maintenance/GenerateFancyCaptchas.php
1 file changed, 134 insertions(+), 118 deletions(-)
Approvals:
jenkins-bot: Verified
Jforrester: Looks good to me, approved
diff --git a/maintenance/GenerateFancyCaptchas.php
b/maintenance/GenerateFancyCaptchas.php
index 6fbd6d9..943a073 100644
--- a/maintenance/GenerateFancyCaptchas.php
+++ b/maintenance/GenerateFancyCaptchas.php
@@ -85,146 +85,162 @@
$this->error( "Could not create temp directory.\n", 1 );
}
- $e = null; // exception
- try {
- $captchaScript = 'captcha.py';
+ $captchaScript = 'captcha.py';
- if ( $this->hasOption( 'oldcaptcha' ) ) {
- $captchaScript = 'captcha-old.py';
+ if ( $this->hasOption( 'oldcaptcha' ) ) {
+ $captchaScript = 'captcha-old.py';
+ }
+
+ $cmd = sprintf( "python %s --key %s --output %s --count %s
--dirs %s",
+ wfEscapeShellArg( dirname( __DIR__ ) . '/' .
$captchaScript ),
+ wfEscapeShellArg( $wgCaptchaSecret ),
+ wfEscapeShellArg( $tmpDir ),
+ wfEscapeShellArg( $countGen ),
+ wfEscapeShellArg( $wgCaptchaDirectoryLevels )
+ );
+ foreach ( [ 'wordlist', 'font', 'font-size', 'blacklist',
'verbose' ] as $par ) {
+ if ( $this->hasOption( $par ) ) {
+ $cmd .= " --$par " . wfEscapeShellArg(
$this->getOption( $par ) );
}
+ }
- $cmd = sprintf( "python %s --key %s --output %s --count
%s --dirs %s",
- wfEscapeShellArg( dirname( __DIR__ ) . '/' .
$captchaScript ),
- wfEscapeShellArg( $wgCaptchaSecret ),
- wfEscapeShellArg( $tmpDir ),
- wfEscapeShellArg( $countGen ),
- wfEscapeShellArg( $wgCaptchaDirectoryLevels )
- );
- foreach ( [ 'wordlist', 'font', 'font-size',
'blacklist', 'verbose' ] as $par ) {
- if ( $this->hasOption( $par ) ) {
- $cmd .= " --$par " . wfEscapeShellArg(
$this->getOption( $par ) );
- }
- }
+ $this->output( "Generating $countGen new captchas.." );
+ $retVal = 1;
+ $captchaTime = -microtime( true );
+ wfShellExec( $cmd, $retVal, [], [ 'time' => 0 ] );
+ if ( $retVal != 0 ) {
+ wfRecursiveRemoveDir( $tmpDir );
+ $this->error( "Could not run generation script.\n", 1 );
+ }
- $this->output( "Generating $countGen new captchas.." );
- $retVal = 1;
- $captchaTime = -microtime( true );
- wfShellExec( $cmd, $retVal, [], [ 'time' => 0 ] );
- if ( $retVal != 0 ) {
- wfRecursiveRemoveDir( $tmpDir );
- $this->error( "Could not run generation
script.\n", 1 );
- }
+ $captchaTime += microtime( true );
+ $this->output( " Done.\n" );
- $captchaTime += microtime( true );
- $this->output( " Done.\n" );
+ $this->output(
+ sprintf(
+ "\nGenerated %d captchas in %.1f seconds\n",
+ $countGen,
+ $captchaTime
+ )
+ );
- $this->output(
- sprintf(
- "\nGenerated %d captchas in %.1f
seconds\n",
- $countGen,
- $captchaTime
- )
- );
-
- $filesToDelete = [];
- if ( $deleteOldCaptchas ) {
- $this->output( "Getting a list of old captchas
to delete..." );
- $path = $backend->getRootStoragePath() .
'/captcha-render';
- foreach ( $backend->getFileList( [ 'dir' =>
$path ] ) as $file ) {
- $filesToDelete[] = [
- 'op' => 'delete',
- 'src' => $path . '/' . $file,
- ];
- }
- $this->output( " Done.\n" );
- }
-
- $this->output( "Copying the new captchas to storage..."
);
-
- $storeTime = -microtime( true );
- $iter = new RecursiveIteratorIterator(
- new RecursiveDirectoryIterator(
- $tmpDir,
- FilesystemIterator::SKIP_DOTS
- ),
- RecursiveIteratorIterator::LEAVES_ONLY
- );
-
- $captchasGenerated = iterator_count( $iter );
- $filesToStore = [];
- /**
- * @var $fileInfo SplFileInfo
- */
- foreach ( $iter as $fileInfo ) {
- if ( !$fileInfo->isFile() ) {
- continue;
- }
- list( $salt, $hash ) =
$instance->hashFromImageName( $fileInfo->getBasename() );
- $dest = $instance->imagePath( $salt, $hash );
- $backend->prepare( [ 'dir' => dirname( $dest )
] );
- $filesToStore[] = [
- 'op' => 'store',
- 'src' => $fileInfo->getPathname(),
- 'dst' => $dest,
+ $filesToDelete = [];
+ if ( $deleteOldCaptchas ) {
+ $this->output( "Getting a list of old captchas to
delete..." );
+ $path = $backend->getRootStoragePath() .
'/captcha-render';
+ foreach ( $backend->getFileList( [ 'dir' => $path ] )
as $file ) {
+ $filesToDelete[] = [
+ 'op' => 'delete',
+ 'src' => $path . '/' . $file,
];
}
+ $this->output( " Done.\n" );
+ }
- $ret = $backend->doQuickOperations( $filesToStore );
+ $this->output( "Copying the new captchas to storage..." );
- $storeTime += microtime( true );
+ $storeTime = -microtime( true );
+ $iter = new RecursiveIteratorIterator(
+ new RecursiveDirectoryIterator(
+ $tmpDir,
+ FilesystemIterator::SKIP_DOTS
+ ),
+ RecursiveIteratorIterator::LEAVES_ONLY
+ );
- if ( $ret->isOK() ) {
- $this->output( " Done.\n" );
+ $captchasGenerated = iterator_count( $iter );
+ $filesToStore = [];
+ /**
+ * @var $fileInfo SplFileInfo
+ */
+ foreach ( $iter as $fileInfo ) {
+ if ( !$fileInfo->isFile() ) {
+ continue;
+ }
+ list( $salt, $hash ) = $instance->hashFromImageName(
$fileInfo->getBasename() );
+ $dest = $instance->imagePath( $salt, $hash );
+ $backend->prepare( [ 'dir' => dirname( $dest ) ] );
+ $filesToStore[] = [
+ 'op' => 'store',
+ 'src' => $fileInfo->getPathname(),
+ 'dst' => $dest,
+ ];
+ }
+
+ $ret = $backend->doQuickOperations( $filesToStore );
+
+ $storeTime += microtime( true );
+
+ $storeSuceeded = true;
+ if ( $ret->isOK() ) {
+ $this->output( " Done.\n" );
+ $this->output(
+ sprintf(
+ "\nCopied %d captchas to storage in
%.1f seconds\n",
+ $ret->successCount,
+ $storeTime
+ )
+ );
+ if ( !$ret->isGood() ) {
$this->output(
- sprintf(
- "\nCopied %d captchas to
storage in %.1f seconds\n",
- $ret->successCount,
- $storeTime
+ "Non fatal errors:\n" .
+ Status::wrap( $ret )->getWikiText(
null, null, 'en' ) .
+ "\n"
+ );
+ }
+ if ( $ret->failCount ) {
+ $storeSuceeded = false;
+ $this->error( sprintf( "\nFailed to copy %d
captchas\n", $ret->failCount ) );
+ }
+ if ( $ret->successCount + $ret->failCount !==
$captchasGenerated ) {
+ $storeSuceeded = false;
+ $this->error(
+ sprintf( "Internal error:
captchasGenerated: %d, successCount: %d, failCount: %d\n",
+ $captchasGenerated,
$ret->successCount, $ret->failCount
)
);
- if ( $ret->failCount ) {
- $this->output( sprintf( "\nFailed to
copy %d captchas\n", $ret->failCount ) );
- }
- if ( $ret->successCount + $ret->failCount !==
$captchasGenerated ) {
+ }
+ } else {
+ $storeSuceeded = false;
+ $this->output( "Errored.\n" );
+ $this->error(
+ Status::wrap( $ret )->getWikiText( null, null,
'en' ) .
+ "\n"
+ );
+ }
+
+ if ( $storeSuceeded && $deleteOldCaptchas ) {
+ $numOriginalFiles = count( $filesToDelete );
+ $this->output( "Deleting {$numOriginalFiles} old
captchas...\n" );
+ $deleteTime = -microtime( true );
+ $ret = $backend->doQuickOperations( $filesToDelete );
+
+ $deleteTime += microtime( true );
+ if ( $ret->isOK() ) {
+ $this->output( "Done.\n" );
+ $this->output(
+ sprintf(
+ "\nDeleted %d old captchas in
%.1f seconds\n",
+ $numOriginalFiles,
+ $deleteTime
+ )
+ );
+ if ( !$ret->isGood() ) {
$this->output(
- sprintf( "Internal error:
captchasGenerated: %d, successCount: %d, failCount: %d\n",
- $captchasGenerated,
$ret->successCount, $ret->failCount
- )
+ "Non fatal errors:\n" .
+ Status::wrap( $ret
)->getWikiText( null, null, 'en' ) .
+ "\n"
);
}
} else {
$this->output( "Errored.\n" );
- $this->output( implode( "\n", Status::wrap(
$ret )->getWikiText( null, null, 'en' ) ) );
+ $this->error(
+ Status::wrap( $ret )->getWikiText(
null, null, 'en' ) .
+ "\n"
+ );
}
- if ( $deleteOldCaptchas ) {
- $numOriginalFiles = count( $filesToDelete );
- $this->output( "Deleting {$numOriginalFiles}
old captchas...\n" );
- $deleteTime = -microtime( true );
- $ret = $backend->doQuickOperations(
$filesToDelete );
-
- $deleteTime += microtime( true );
- if ( $ret->isOK() ) {
-
- $this->output( "Done.\n" );
- $this->output(
- sprintf(
- "\nDeleted %d old
captchas in %.1f seconds\n",
- $numOriginalFiles,
- $deleteTime
- )
- );
- } else {
- $this->output( "Errored.\n" );
- $this->output( implode( "\n",
Status::wrap( $ret )->getWikiText( null, null, 'en' ) ) );
- }
-
- }
- } catch ( Exception $e ) {
- wfRecursiveRemoveDir( $tmpDir );
- throw $e;
}
-
$this->output( "Removing temporary files..." );
wfRecursiveRemoveDir( $tmpDir );
$this->output( " Done.\n" );
--
To view, visit https://gerrit.wikimedia.org/r/342067
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I982c4ee5e7d48a07c5d8d0211d1e618d83065536
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/ConfirmEdit
Gerrit-Branch: master
Gerrit-Owner: Reedy <[email protected]>
Gerrit-Reviewer: Florianschmidtwelzow <[email protected]>
Gerrit-Reviewer: Gergő Tisza <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: Reedy <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits