[limb-svn] r6365 - 3.x/trunk/cli
svn at limb-project.com
svn at limb-project.com
Wed Oct 3 01:01:37 MSD 2007
Author: pachanga
Date: 2007-10-03 01:01:37 +0400 (Wed, 03 Oct 2007)
New Revision: 6365
URL: http://fisheye.limb-project.com/changelog/limb/?cs=6365
Modified:
3.x/trunk/cli/bundle_classes.php
Log:
-- non-root classes are listed first by bundle_classes.php
Modified: 3.x/trunk/cli/bundle_classes.php
===================================================================
--- 3.x/trunk/cli/bundle_classes.php 2007-10-02 19:49:06 UTC (rev 6364)
+++ 3.x/trunk/cli/bundle_classes.php 2007-10-02 21:01:37 UTC (rev 6365)
@@ -2,8 +2,32 @@
set_time_limit(0);
$files = array();
-$classes = array();
+$root_classes = array();
+$nonroot_classes = array();
+function make_bundle($files, $filter_regex)
+{
+ $bundle = '';
+ foreach($files as $file)
+ {
+ $lines = file($file);
+ //removing <?php stuff
+ array_shift($lines);
+ if(strpos($lines[count($lines)-1], '?>'))
+ array_pop($lines);
+
+ //filter unneccessary lmb_require's
+ for($i=0;$i<count($lines);$i++)
+ {
+ if(preg_match($filter_regex, $lines[$i]))
+ unset($lines[$i]);
+ }
+
+ $bundle .= implode("", $lines);
+ }
+ return $bundle;
+}
+
array_shift($argv);
foreach($argv as $dir)
{
@@ -24,28 +48,23 @@
$files = array_filter($files);
$files = array_unique($files);
+$classes = array();
foreach($files as $file)
- $classes[] = reset(explode('.', basename($file)));
+{
+ $class = reset(explode('.', basename($file)));
+ if(preg_match("~class\s+$class\s+.*(extends|implements)~", file_get_contents($file)))
+ $nonroot_classes[] = $file;
+ else
+ $root_classes[] = $file;
+ $classes[] = $class;
+}
+
$filter_regex = '~lmb_require.+(' . implode('|', $classes) . ')~';
$bundle = '';
-foreach($files as $file)
-{
- $lines = file($file);
- //removing <?php stuff
- array_shift($lines);
- if(strpos($lines[count($lines)-1], '?>'))
- array_pop($lines);
-
- //filter unneccessary lmb_require's
- for($i=0;$i<count($lines);$i++)
- {
- if(preg_match($filter_regex, $lines[$i]))
- unset($lines[$i]);
- }
- $bundle .= implode("", $lines);
-}
+$bundle .= make_bundle($root_classes, $filter_regex);
+$bundle .= make_bundle($nonroot_classes, $filter_regex);
echo "<?php\n" . $bundle;
More information about the limb-svn
mailing list