Bug 13893: Add ability to execute perl scripts in atomicupdates
authorKyle M Hall <kyle@bywatersolutions.com>
Mon, 23 Mar 2015 13:19:03 +0000 (09:19 -0400)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Wed, 29 Apr 2015 18:38:03 +0000 (15:38 -0300)
Bug 13068 adds the ability to execute sql files from atomicupdates for
in process developments to reduce merge conflicts. We need to extend
this ability further to be able to handle perl code.

Revised Test Plan
-----------------
1) Run updatedatabase.pl
   -- Expect output to be similar to:
   $ ./installer/data/mysql/updatedatabase.pl
   DEV atomic update : test.perl
   Upgrade to XXX done (Bug 13893 - Add ability to execute perl scripts in atomicupdates)
2) Run koha qa test tools.
   -- only need to check last commit (-c 1), because first commit is a
      sample file which shouldn't be pushed.

Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
installer/data/mysql/updatedatabase.pl

index 2cbec16..b2c0821 100755 (executable)
@@ -10308,10 +10308,13 @@ if ( CheckVersion($DBversion) ) {
 my $update_dir = C4::Context->config('intranetdir') . '/installer/data/mysql/atomicupdate/';
 opendir( my $dirh, $update_dir );
 while ( my $file = readdir $dirh ) {
-    next unless $file =~ /\.sql$/;    # skip non SQL files
-    print "DEV atomic update : $file \n";
-    my $installer = C4::Installer->new();
-    my $rv = $installer->load_sql( $update_dir . $file ) ? 0 : 1;
+    if ( $file =~ /\.sql$/ ) {    # skip non SQL files
+        print "DEV atomic update : $file \n";
+        my $installer = C4::Installer->new();
+        my $rv = $installer->load_sql( $update_dir . $file ) ? 0 : 1;
+    } elsif ( $file =~ /\.perl$/ ) {
+        do $update_dir . $file;
+    }
 }
 
 =head1 FUNCTIONS