Файл: core/asido/class.driver.shell.php
Строк: 63
<?php
/**
* @author Kaloyan K. Tsvetkov <kaloyan@kaloyan.info>
* @license http://opensource.org/licenses/lgpl-license.php GNU Lesser General Public License Version 2.1
* @package Asido
* @subpackage Asido.Driver
* @version $Id: class.driver.shell.php 7 2007-04-09 21:09:09Z mrasnika $
*/
/////////////////////////////////////////////////////////////////////////////
/**
* Common file for all "shell" based solutions 
*
* @package Asido
* @subpackage Asido.Driver
*
* @abstract
*/
Class Asido_Driver_Shell Extends Asido_Driver {
    
    /**
    * Path to the executables
    * @var string
    * @access private
    */
    var $__exec = '';
    // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    
    /**
    * Try to locate the program
    * @param string $program
    * @return string
    *
    * @access protected
    */
    function __exec($program) {
            // safe mode ?
            //
        if (!ini_get('safe_mode') || !$path = ini_get('safe_mode_exec_dir')) {
                ($path = getenv('PATH')) || ($path = getenv('Path'));
                }
        $executable = false;
        $p = explode(PATH_SEPARATOR, $path);
        $p[] = getcwd();
        $ext = array();        
        if (OS_WINDOWS) {
            $ext = getenv('PATHEXT')
                    ? explode(PATH_SEPARATOR, getenv('PATHEXT'))
                    : array('.exe','.bat','.cmd','.com');
        
            // extension ?
            //
            array_unshift($ext, '');
            }
        // walk the variants
        //
        foreach ($ext as $e) {
            foreach ($p as $dir) {
                $exe = $dir . DIRECTORY_SEPARATOR . $program . $e;
                // *nix only implementation
                //
                if (OS_WINDOWS ? is_file($exe) : is_executable($exe)) {
                    $executable = $exe;
                    break;
                    }
                }
            }
        return $executable;
        }
    // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    /**
    * Run a command
    * @param string $program
    * @param string $args
    * @return string
    * @access protected
    */
    function __command($program, $args = '') {
        return $this->__exec . $program . ' ' . $args;
        }
    
    // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    /**
    * Destroy the source for the provided temporary object
    *
    * @param Asido_TMP &$tmp
    * @return boolean
    * @access protected
    * @abstract
    */    
    function __destroy_source(&$tmp) {
        return unlink($tmp->source);
        }
    /**
    * Destroy the target for the provided temporary object
    *
    * @param Asido_TMP &$tmp
    * @return boolean
    * @access protected
    * @abstract
    */    
    function __destroy_target(&$tmp) {
        return unlink($tmp->target);
        }
    // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    
//--end-of-class--    
}
/////////////////////////////////////////////////////////////////////////////
?>