DataObjects/Core_person_signup.php
[Pman.Core] / JsCompile.php
index 80a62e1..84a609e 100644 (file)
@@ -81,6 +81,16 @@ class Pman_Core_JsCompile  extends Pman
      *
      */
     
+    static function jsSort($a,$b)
+    {
+        $a = substr($a, 0, -3);
+        $b=  substr($b, 0, -3);
+        if ($a == $b) {
+            return 0;
+        }
+        return ($a > $b) ? +1 : -1;
+    }
+    
     
     function packScript($basedir, $files,  $output_url, $compile=true)
     {
@@ -100,14 +110,21 @@ class Pman_Core_JsCompile  extends Pman
             if (!is_dir($basedir .'/' .$f)) {
                 
                 $arfiles[$basedir .'/' .$f] = filemtime($basedir .'/' .$f);
-                 $ofiles[] = $f;
+                $ofiles[] = $f;
                 continue;
             }
+            
             foreach(glob($basedir .'/' .$f.'/*.js') as $fx) {
+                
                 $arfiles[$fx] = filemtime($fx);
                 $ofiles [] = $f . '/'. basename($fx);
             }
         }
+        $tf = 
+        // sort exc. the .js
+        usort($ofiles,create_function('$a,$b', 'return Pman_Core_JsCompile::jsSort($a,$b);'));
+        
+        //print_R($ofiles);
         
         $output = md5(serialize($arfiles)) .'.js';
         
@@ -211,8 +228,7 @@ class Pman_Core_JsCompile  extends Pman
         $eoutput = escapeshellarg($output);
         $cmd = $seed ?
             ("$seed {$o['cssminify']}  $eoutput " . implode($ofiles, ' ')) :
-            ("$gjs {$o['cssminify']}  $eoutput " . implode($ofiles, ' ')) :
-            ;
+            ("$gjs {$o['cssminify']} -- -- $eoutput " . implode($ofiles, ' ')); 
         //echo "<PRE>$cmd\n"; echo `$cmd`; exit;
         `$cmd`;
         
@@ -245,8 +261,10 @@ class Pman_Core_JsCompile  extends Pman
         }
         require_once 'System.php';
         $seed= System::which('seed');
-        if (!$seed) {
-            echo '<!-- JS COMPILE ERROR: seed not installed -->';
+        $gjs = System::which('gjs');
+        
+        if (!$seed && !$gjs) {
+            echo '<!-- seed or gjs are  not installed -->';
             return false;
             
         }
@@ -268,17 +286,21 @@ class Pman_Core_JsCompile  extends Pman
         $lsort = create_function('$a,$b','return strlen($a) > strlen($b) ? 1 : -1;');
         usort($ofiles, $lsort);
         
-        $eoutput = " -o " . escapeshellarg($output) ;
-            
+        //$eoutput = " -k  -o " . escapeshellarg($output) ; // with whitespace..
+        $eoutput = "  -o " . escapeshellarg($output) ;
                    
         if (  $translation_base) {
-            $toutput = "-t ". escapeshellarg(preg_replace('/\.js$/', '.__translation__.js', $output)) .
+            $toutput = " -t ". escapeshellarg(preg_replace('/\.js$/', '.__translation__.js', $output)) .
                     " -p " . escapeshellarg($translation_base) ;//." -k "; // this kills the compression.
                     
         }
         
         
-        $cmd = "$seed {$o['jspacker']}/pack.js   $eoutput  $toutput " . implode($ofiles, ' ') . ' 2>&1';
+        $cmd = ($seed ?
+             "$seed {$o['jspacker']}/pack.js " :
+             "$gjs -I {$o['jspacker']} -I {$o['jspacker']}/JSDOC  {$o['jspacker']}/pack.js -- -- " 
+              
+             ) . " $eoutput  $toutput " . implode($ofiles, ' ') . ' 2>&1';
         //echo "<PRE>$cmd\n";
         //echo `$cmd`;