DataObjects/core.sql
[Pman.Core] / JsCompile.php
index 5cfc70e..6e249aa 100644 (file)
@@ -17,7 +17,10 @@ require_once 'Pman.php';
 class Pman_Core_JsCompile  extends Pman
 {
     
-    static $cli_desc = "Wrapper around Javascript compression tools";
+    static $cli_desc = "Wrapper around Javascript compression tools
+                        Runs the javascript compiler - merging all the JS files so the load faster.
+                        Note: cfg option Pman_Builder['jspacker'] must be set to location of jstoolkit code 
+";
     
     var $cli = false;
     function getAuth()
@@ -86,6 +89,8 @@ class Pman_Core_JsCompile  extends Pman
         // or the compressed version.
         // first expand files..
         
+        echo "<!-- compiling   $basedir  -->\n";
+        
         $arfiles = array();
         $ofiles = array();
         foreach($files as $f) {
@@ -119,9 +124,9 @@ class Pman_Core_JsCompile  extends Pman
             echo '<script type="text/javascript" src="'.$output_url.'/'.$f.'"></script>'."\n";
             
         }
-         
-        
+          
     }
+    
     function packCss($basedir, $files,   $output_url)
     {
         // this outputs <script tags..>
@@ -181,9 +186,12 @@ class Pman_Core_JsCompile  extends Pman
             return false;
         }
         require_once 'System.php';
+        
         $seed= System::which('seed');
-        if (!$seed) {
-            echo '<!-- seed not installed -->';
+        $gjs = System::which('gjs');
+        
+        if (!$seed && !$gjs) {
+            echo '<!-- seed or gjs are  not installed -->';
             return false;
             
         }
@@ -201,7 +209,9 @@ class Pman_Core_JsCompile  extends Pman
             mkdir(dirname($output), 0755, true);
         }
         $eoutput = escapeshellarg($output);
-        $cmd = "$seed {$o['cssminify']}  $eoutput " . implode($ofiles, ' ');
+        $cmd = $seed ?
+            ("$seed {$o['cssminify']}  $eoutput " . implode($ofiles, ' ')) :
+            ("$gjs {$o['cssminify']} -- -- $eoutput " . implode($ofiles, ' ')); 
         //echo "<PRE>$cmd\n"; echo `$cmd`; exit;
         `$cmd`;
         
@@ -234,19 +244,21 @@ 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;
             
         }
-        $targetm = file_exists($output) ? filemtime($output) : 0;
+        $targetm = file_exists($output) && filesize($output) ? filemtime($output) : 0;
         $max = 0;
         $ofiles = array();
         foreach($files as $f => $mt) {
             $max = max($max,$mt);
             $ofiles[] = escapeshellarg($f);
         }
-        if ($max < $targetm)
+        if ($max < $targetm) {
             echo '<!--  use cached compile. -->';
             return true;
         }
@@ -257,17 +269,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`;