Browse Source

[Process] added optional argument for default executable

Kris Wallsmith 14 years ago
parent
commit
5dc1a9bb58

+ 3 - 3
src/Symfony/Bundle/AsseticBundle/DependencyInjection/Configuration.php

@@ -57,9 +57,9 @@ class Configuration implements ConfigurationInterface
                 ->booleanNode('use_controller')->defaultValue($this->debug)->end()
                 ->scalarNode('read_from')->defaultValue('%kernel.root_dir%/../web')->end()
                 ->scalarNode('write_to')->defaultValue('%assetic.read_from%')->end()
-                ->scalarNode('java')->defaultValue(function() use ($finder) { $java = $finder->find('java'); return $java ? $java : '/usr/bin/java'; })->end()
-                ->scalarNode('node')->defaultValue(function() use ($finder) { $node = $finder->find('node'); return $node ? $node : '/usr/bin/node'; })->end()
-                ->scalarNode('sass')->defaultValue(function() use ($finder) { $saas = $finder->find('saas'); return $saas ? $saas : '/usr/bin/saas'; })->end()
+                ->scalarNode('java')->defaultValue($finder->find('java', '/usr/bin/java'))->end()
+                ->scalarNode('node')->defaultValue($finder->find('node', '/usr/bin/node'))->end()
+                ->scalarNode('sass')->defaultValue($finder->find('sass', '/usr/bin/sass'))->end()
             ->end()
 
             // bundles

+ 5 - 4
src/Symfony/Component/Process/ExecutableFinder.php

@@ -34,11 +34,12 @@ class ExecutableFinder
     /**
      * Finds an executable by name.
      *
-     * @param string $name The executable name (without the extension)
+     * @param string $name    The executable name (without the extension)
+     * @param string $default The default to return if no executable is found
      *
-     * @return string|false The executable path or false if it cannot be found
+     * @return string The executable path or default value
      */
-    public function find($name)
+    public function find($name, $default = null)
     {
         $dirs = explode(PATH_SEPARATOR, getenv('PATH') ? getenv('PATH') : getenv('Path'));
         $suffixes = DIRECTORY_SEPARATOR == '\\' ? (getenv('PATHEXT') ? explode(PATH_SEPARATOR, getenv('PATHEXT')) : $this->suffixes) : array('');
@@ -50,6 +51,6 @@ class ExecutableFinder
             }
         }
 
-        return false;
+        return $default;
     }
 }