+ $cmd = $seed ?
+ ("$seed {$o['cssminify']} $eoutput " . implode($ofiles, ' ')) :
+ ("$gjs {$o['cssminify']} -- -- $eoutput " . implode($ofiles, ' '));
+ //echo "<PRE>$cmd\n"; echo `$cmd`; exit;
+ `$cmd`;
+
+
+ // we should do more checking.. return val etc..
+ if (file_exists($output) && ($max < filemtime($output) ) ) {
+ return true;
+ }
+ return false;
+
+ }
+ /**
+ * 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, $translation_base=false)
+ {
+
+ if (empty($files)) {
+ return false;
+ }
+
+ $o = HTML_FlexyFramework::get()->Pman_Core;
+ if (isset($o['packseed'])) {
+ return $this->packSeed($files,$output,$translation_base);
+ }
+
+
+ require_once 'System.php';
+ $packer = System::which('roojspacker');
+
+
+ if (!$packer) {
+ echo '<!-- roojspacker is not installed -->';
+ return false;
+
+ }
+ $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) {
+ echo '<!-- use cached compile. -->';
+ return true;
+ }
+
+ if (file_exists($output)) {
+ unlink($output);
+ }
+
+
+ if (!file_exists(dirname($output))) {
+ mkdir(dirname($output), 0755, true);
+ }
+
+ usort($ofiles, function($a,$b) { return strlen($a) > strlen($b) ? 1 : -1; });
+
+ //$eoutput = " -k -o " . escapeshellarg($output) ; // with whitespace..
+ $eoutput = " -t " . escapeshellarg($output) ;
+
+ // no support for translation any more?
+ //if ( $translation_base) {
+ // $toutput = " -t ". escapeshellarg(preg_replace('/\.js$/', '.__translation__.js', $output)) .
+ // " -p " . escapeshellarg($translation_base) ;//." -k "; // this kills the compression.
+ //
+ //}
+
+
+ $cmd = "$packer $eoutput -f " . implode(' -f ', $ofiles) . ' 2>&1';