GenCode - Ignore cache/digest if some key files are missing
authorTim Otten <totten@civicrm.org>
Wed, 15 Jan 2014 23:17:59 +0000 (15:17 -0800)
committerTim Otten <totten@civicrm.org>
Wed, 15 Jan 2014 23:17:59 +0000 (15:17 -0800)
CRM/Core/CodeGen/Main.php

index f115ba7a277b2d8207e47138e6cca23903d41013..a5d85822bbca9973be0965026c422757c16fe2b2 100644 (file)
@@ -52,7 +52,7 @@ class CRM_Core_CodeGen_Main {
    *
    */
   function main() {
-    if (!empty($this->digestPath) && file_exists($this->digestPath)) {
+    if (!empty($this->digestPath) && file_exists($this->digestPath) && $this->hasExpectedFiles()) {
       if ($this->getDigest() === file_get_contents($this->digestPath)) {
         echo "GenCode has previously executed. To force execution, please (a) omit CIVICRM_GENCODE_DIGEST\n";
         echo "or (b) remove {$this->digestPath} or (c) call GenCode with new parameters.\n";
@@ -155,4 +155,20 @@ Alternatively you can get a version of CiviCRM that matches your PHP version
     }
     return $this->digest;
   }
+
+  function getExpectedFiles() {
+    return array(
+      $this->sqlCodePath . '/civicrm.mysql',
+      $this->phpCodePath . '/CRM/Contact/DAO/Contact.php',
+    );
+  }
+
+  function hasExpectedFiles() {
+    foreach ($this->getExpectedFiles() as $file) {
+      if (!file_exists($file)) {
+        return FALSE;
+      }
+    }
+    return TRUE;
+  }
 }