PageRenderTime 22ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 0ms

/tux-target/www/crc.php

http://tux-target.googlecode.com/
PHP | 182 lines | 142 code | 21 blank | 19 comment | 26 complexity | 96d07150cdc96638b5065769e5723ddd MD5 | raw file
Possible License(s): GPL-2.0
  1. <html>
  2. <head>
  3. <title>mtp-target</title>
  4. </head>
  5. <body>
  6. <?php
  7. function exec_requete($requete)
  8. {
  9. $DBHost = "127.0.0.1";
  10. $DBUserName = "root";
  11. $DBPassword = "lgt3ki";
  12. $DBName = "nel";
  13. $MySqlLinkIdentifier = mysql_connect( $DBHost, $DBUserName, $DBPassword ) or die("cannot connect to $DBHost");
  14. mysql_select_db($DBName) or die("cannot select $DBName");
  15. $resultat = mysql_query($requete) or die("query failed(".mysql_error().") : $requete");
  16. $erreur = mysql_error();
  17. if ($erreur != "")
  18. {
  19. die("mysql_error : $erreur");
  20. }
  21. return $resultat;
  22. }
  23. function dbAddFile($srcName,$destDir,$destName)
  24. {
  25. $gzFilename = $destDir.$destName.".gz";
  26. $requete = "SELECT Crc,UNIX_TIMESTAMP(CrcDate) FROM data_file WHERE Name='$destName';";
  27. $result=exec_requete($requete);
  28. //echo "$srcName -> $gzFilename<br>";
  29. if($line = mysql_fetch_array($result))
  30. {
  31. $sha1 = $line[0];
  32. $crcDate = $line[1];
  33. $filedate = filemtime($srcName);
  34. if($crcDate>$filedate && file_exists($gzFilename))
  35. {
  36. echo "uptodate ";
  37. return $sha1;
  38. }
  39. if($crcDate<=$filedate)
  40. echo "crc not up to date ";
  41. if(!file_exists($gzFilename))
  42. echo "$gzFilename file not found ";
  43. echo "computing ... ";
  44. $sha1 = sha1_file($srcName);
  45. $command = "nice gzip -c ".$srcName." > ".$gzFilename;
  46. system($command);
  47. $requete = "UPDATE data_file SET Crc='$sha1', CrcDate=NOW() WHERE Name='$destName';";
  48. $result=exec_requete($requete);
  49. return $sha1;
  50. }
  51. else
  52. {
  53. echo "$srcName never build : computing ... ";
  54. $sha1 = sha1_file($srcName);
  55. $command = "nice gzip -c ".$srcName." > ".$gzFilename;
  56. system($command);
  57. $requete = "INSERT INTO data_file (Name,Crc,CrcDate) VALUES ('$destName','$sha1',NOW());";
  58. $result=exec_requete($requete);
  59. return $sha1;
  60. }
  61. return 0;
  62. }
  63. function emptyDir($dir)
  64. {
  65. if(!file_exists($dir))
  66. {
  67. mkdir($dir);
  68. return;
  69. }
  70. $handle = opendir($dir);
  71. if(!handle)
  72. die("failed to opendir : $dir");
  73. while (false!==($FolderOrFile = readdir($handle)))
  74. {
  75. if($FolderOrFile != "." && $FolderOrFile != "..")
  76. {
  77. if(is_dir("$dir/$FolderOrFile"))
  78. {
  79. //deldir("$dir/$FolderOrFile"); // recursive
  80. }
  81. else
  82. {
  83. unlink("$dir/$FolderOrFile");
  84. }
  85. }
  86. }
  87. closedir($handle);
  88. /*
  89. if(rmdir($dir))
  90. {
  91. $success = true;
  92. }
  93. return $success;
  94. */
  95. }
  96. function crcAddDir($fp,$srcDir,$destDir,$validExt)
  97. {
  98. $handle = opendir($srcDir);
  99. if(!handle)
  100. die("failed to opendir : $srcDir");
  101. while (false!==($FolderOrFile = readdir($handle)))
  102. {
  103. if($FolderOrFile != "." && $FolderOrFile != "..")
  104. {
  105. $f = $srcDir . "/" . $FolderOrFile ;
  106. if(is_dir($f))
  107. {
  108. crcAddDir($fp,$f,$destDir,$validExt); //recursive
  109. }
  110. else
  111. {
  112. $arr=explode('.',$FolderOrFile);
  113. $arrSize=count($arr);
  114. if($arrSize>1)
  115. {
  116. $ext = $arr[$arrSize-1];
  117. if(in_array($ext, $validExt))
  118. {
  119. //printf("%s : %s<br>",$f,$ext);
  120. $sha1 = dbAddFile($f,$destDir,$FolderOrFile);
  121. printf("%s : %s<br>\n",$FolderOrFile,$sha1);
  122. fwrite($fp,sprintf("%s\n",$FolderOrFile));
  123. fwrite($fp,sprintf("%s\n",$sha1));
  124. //$command = "nice gzip -c ".$f." > ".$destDir.$FolderOrFile.".gz";
  125. //sleep(1);
  126. //echo "executing : ".$command."<br>";
  127. //system($command);
  128. }
  129. }
  130. }
  131. }
  132. }
  133. closedir($handle);
  134. }
  135. $ext = "tga lua dds ps shape xml";
  136. $extArray = explode(" ", $ext);
  137. $user_texture_ext = "dds";
  138. $user_texture_extArray = explode(" ", $user_texture_ext);
  139. $sourceDirname = "/home/skeet/cvs/code/mtp-target/";
  140. $exportDirname = "./export/";
  141. $crcFilename = "crc.txt";
  142. $crcTempFilename = "crc_temp.txt";
  143. $fullCrcFilename = $exportDirname.$crcFilename;
  144. $fullCrcTempFilename = $exportDirname.$crcTempFilename;
  145. printf("building : '%s'<br>\n",$fullCrcFilename);
  146. $crcfp = fopen($fullCrcTempFilename,"wt");
  147. if(!$crcfp) die("error opening crc file : ".$fullCrcTempFilename);
  148. crcAddDir($crcfp,$sourceDirname."server/data/",$exportDirname,$extArray);
  149. crcAddDir($crcfp,$sourceDirname."user_texture/",$exportDirname,$user_texture_extArray);
  150. fclose($crcfp);
  151. if(file_exists($fullCrcFilename))
  152. unlink($fullCrcFilename);
  153. rename($fullCrcTempFilename,$fullCrcFilename);
  154. /*
  155. $command = "gzip ".$fullCrcFilename;
  156. echo "executing : ".$command."<br>";
  157. system($command);
  158. */
  159. ?>
  160. </body>
  161. </html>