Make importTextFiles.php work with wildcards on the Windows shell
authorThis, that and the other <at.light@live.com.au>
Sat, 16 Jul 2016 12:19:31 +0000 (22:19 +1000)
committerTTO <at.light@live.com.au>
Sat, 16 Jul 2016 12:29:11 +0000 (12:29 +0000)
The Windows command line doesn't automatically expand wildcards, unlike
Unix shells. So the script tried to run function calls like
file_get_contents( '*.txt' ), which do not work. This patch uses glob()
to simulate the behaviour of the Unix shell.

This was reported at https://www.mediawiki.org/wiki/Topic:T7hf8bz8u2p4ryol

Change-Id: I002344a19cb08cc8ac8ee75214339b2379b04dbe

maintenance/importTextFiles.php

index 88ee9d7..5531ffc 100644 (file)
@@ -63,7 +63,16 @@ class ImportTextFiles extends Maintenance {
                        if ( file_exists( $arg ) ) {
                                $files[$arg] = file_get_contents( $arg );
                        } else {
-                               $this->error( "Fatal error: The file '$arg' does not exist!", 1 );
+                               // use glob to support the Windows shell, which doesn't automatically
+                               // expand wildcards
+                               $found = false;
+                               foreach ( glob( $arg ) as $filename ) {
+                                       $found = true;
+                                       $files[$filename] = file_get_contents( $filename );
+                               }
+                               if ( !$found ) {
+                                       $this->error( "Fatal error: The file '$arg' does not exist!", 1 );
+                               }
                        }
                };