[LON-CAPA-cvs] cvs: loncom(auto_convert_32_to_64) / LONCAPA.pm

albertel lon-capa-cvs@mail.lon-capa.org
Fri, 13 Oct 2006 19:11:08 -0000


albertel		Fri Oct 13 15:11:08 2006 EDT

  Modified files:              (Branch: auto_convert_32_to_64)
    /loncom	LONCAPA.pm 
  Log:
  - checks for a .old and auto converts if not existing
  
  
Index: loncom/LONCAPA.pm
diff -u loncom/LONCAPA.pm:1.13 loncom/LONCAPA.pm:1.13.2.1
--- loncom/LONCAPA.pm:1.13	Fri Aug 11 16:07:18 2006
+++ loncom/LONCAPA.pm	Fri Oct 13 15:11:05 2006
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Base routines
 #
-# $Id: LONCAPA.pm,v 1.13 2006/08/11 20:07:18 albertel Exp $
+# $Id: LONCAPA.pm,v 1.13.2.1 2006/10/13 19:11:05 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -269,7 +269,8 @@
 	       return undef; 
 	   } 
 # If this is compressed, we will actually need an exclusive lock
-	   if (-e "$file_prefix.db.gz") {
+	   if (-e "$file_prefix.db.gz"
+	       || !-e "$file_prefix.db.old" ) {
 	       if (!&flock_sym(LOCK_EX)) {
 		   &clean_sym();
 		   return undef;
@@ -294,6 +295,30 @@
 	       system("gunzip $file_prefix.hist.gz");
 	   }
        }
+       if (!-e "$file_prefix.db.old") {
+           my $dump_db = '/home/httpd/perl/debug/dump_db_static_32';
+	   my $create_db = '/home/httpd/perl/debug/create_db_dynamic_64';
+           my $file = "$file_prefix.db";
+           &main::logthis("Converting $file");
+           if (!-x $dump_db) {
+	       &clean_symb();
+	       &main::logthis("$dump_db unexecutable");
+	       return;
+	   }
+           if (!-x $create_db) {
+	       &clean_symb();
+	       &main::logthis("$create_db unexecutable");
+	       return;
+	   }
+	   system("$dump_db -f $file|$create_db -f $file.new");
+	   if (!-e "$file.new") {
+	       &clean_symb();
+	       &main::logthis("conversion faile $file.new doesn't exist");
+	       return;
+	   }
+           rename($file,"$file.old");
+	   rename("$file.new","$file");
+       }
 # Change access mode to non-blocking
        $how=$how|&GDBM_NOLOCK();
 # Go ahead and tie the hash