JsCompile.php
[Pman.Core] / JsCompile.php
index efabda2..31bb666 100644 (file)
@@ -16,6 +16,9 @@ require_once 'Pman.php';
 
 class Pman_Core_JsCompile  extends Pman
 {
+    
+    static $cli_desc = "Wrapper around Javascript compression tools";
+    
     var $cli = false;
     function getAuth()
     {
@@ -71,7 +74,7 @@ class Pman_Core_JsCompile  extends Pman
      * @param {Array}  list of files (ontop of basedir) 
      * @param {String} output url (path to basedir basically), or false
      *                  to not compile
-     *
+     * 
      *
      */
     
@@ -174,7 +177,7 @@ class Pman_Core_JsCompile  extends Pman
         $o = HTML_FlexyFramework::get()->Pman_Core;
         
         if (empty($o['cssminify']) || !file_exists($o['cssminify'])) {
-            echo '<!-- jspacker not set -->';
+            echo '<!-- cssminify not set -->';
             return false;
         }
         require_once 'System.php';
@@ -211,19 +214,21 @@ class Pman_Core_JsCompile  extends Pman
         
     }
     /**
-     * wrapper arroudn packer...
+     * wrapper arround packer...
+     * uses the translation module & puts index in __tra
+     * 
      * @param {Array} map of $files => filemtime the files to pack
      * @param {String} $output name fo file to output
      *
      */
-    function pack($files, $output)
+    function pack($files, $output, $translation_base=false)
     {
         
          
         $o = HTML_FlexyFramework::get()->Pman_Core;
         
         if (empty($o['jspacker']) || !file_exists($o['jspacker'].'/pack.js')) {
-            echo '<!-- JS COMPILE ERROR: option: Pman_Core[jspacker] not set -->';
+            echo '<!-- JS COMPILE ERROR: option: Pman_Core[jspacker] not set to directory -->';
             return false;
             
         }
@@ -248,21 +253,37 @@ class Pman_Core_JsCompile  extends Pman
         if (!file_exists(dirname($output))) {
             mkdir(dirname($output), 0755, true);
         }
-        sort($ofiles);
-        $eoutput = escapeshellarg($output);
-        $cmd = "$seed {$o['jspacker']}/pack.js  -o $eoutput " . implode($ofiles, ' ') . ' 2>&1';
+        $lsort = create_function('$a,$b','return strlen($a) > strlen($b) ? 1 : -1;');
+        usort($ofiles, $lsort);
+        
+        $eoutput = " -o " . escapeshellarg($output) .
+                   " -O ". escapeshellarg(preg_replace('/\.js$/', '.__debug__.js', $output));
+                   
+        if (false && $translation_base) {
+            $toutput = "-t ". escapeshellarg(preg_replace('/\.js$/', '.__translation__.js', $output)) .
+                    " -p " . escapeshellarg($translation_base);
+        }
+        
+        
+        
+        $cmd = "$seed {$o['jspacker']}/pack.js  $eoutput  $toutput " . implode($ofiles, ' ') . ' 2>&1';
         //echo "<PRE>$cmd\n";
         //echo `$cmd`;
-        $res = `$cmd`;
-        //exit;
         
-        // since this only appears when we change.. it's ok to dump it out..
-          echo "<!-- Compiled javascript
+         echo "<!-- Compile javascript
           
             " . htmlspecialchars($cmd) . "
             
-            " . htmlspecialchars($res) . "
+            -->";
             
+       // return false;
+        
+        $res = `$cmd`;
+        //exit;
+        file_put_contents($output.'.log', $cmd."\n\n". $res);
+        // since this only appears when we change.. it's ok to dump it out..
+          echo "<!-- Compiled javascript
+            " . htmlspecialchars($res) . "
             -->";
             
         // we should do more checking.. return val etc..