!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/usr/local/lib/php/PEAR/Frontend/   drwxr-xr-x
Free 318.29 GB of 458.09 GB (69.48%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     CLI.php (16.31 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/*
  +----------------------------------------------------------------------+
  | PHP Version 5                                                        |
  +----------------------------------------------------------------------+
  | Copyright (c) 1997-2004 The PHP Group                                |
  +----------------------------------------------------------------------+
  | This source file is subject to version 3.0 of the PHP license,       |
  | that is bundled with this package in the file LICENSE, and is        |
  | available through the world-wide-web at the following url:           |
  | http://www.php.net/license/3_0.txt.                                  |
  | If you did not receive a copy of the PHP license and are unable to   |
  | obtain it through the world-wide-web, please send a note to          |
  | license@php.net so we can mail you a copy immediately.               |
  +----------------------------------------------------------------------+
  | Author: Stig Sæther Bakken <ssb@php.net>                             |
  +----------------------------------------------------------------------+

  $Id: CLI.php,v 1.25.2.16 2005/03/28 16:57:01 cellog Exp $
*/

require_once "PEAR.php";

class 
PEAR_Frontend_CLI extends PEAR
{
    
// {{{ properties

    /**
     * What type of user interface this frontend is for.
     * @var string
     * @access public
     */
    
var $type 'CLI';
    var 
$lp ''// line prefix

    
var $params = array();
    var 
$term = array(
        
'bold' => '',
        
'normal' => '',
        );

    
// }}}

    // {{{ constructor

    
function PEAR_Frontend_CLI()
    {
        
parent::PEAR();
        
$term getenv('TERM'); //(cox) $_ENV is empty for me in 4.1.1
        
if (function_exists('posix_isatty') && !posix_isatty(1)) {
            
// output is being redirected to a file or through a pipe
        
} elseif ($term) {
            
// XXX can use ncurses extension here, if available
            
if (preg_match('/^(xterm|vt220|linux)/'$term)) {
                
$this->term['bold'] = sprintf("%c%c%c%c"279149109);
                
$this->term['normal']=sprintf("%c%c%c"2791109);
            } elseif (
preg_match('/^vt100/'$term)) {
                
$this->term['bold'] = sprintf("%c%c%c%c%c%c"27914910900);
                
$this->term['normal']=sprintf("%c%c%c%c%c"279110900);
            }
        } elseif (
OS_WINDOWS) {
            
// XXX add ANSI codes here
        
}
    }

    
// }}}

    // {{{ displayLine(text)

    
function displayLine($text)
    {
        
trigger_error("PEAR_Frontend_CLI::displayLine deprecated"E_USER_ERROR);
    }

    function 
_displayLine($text)
    {
        print 
"$this->lp$text\n";
    }

    
// }}}
    // {{{ display(text)

    
function display($text)
    {
        
trigger_error("PEAR_Frontend_CLI::display deprecated"E_USER_ERROR);
    }

    function 
_display($text)
    {
        print 
$text;
    }

    
// }}}
    // {{{ displayError(eobj)

    /**
     * @param object PEAR_Error object
     */
    
function displayError($eobj)
    {
        return 
$this->_displayLine($eobj->getMessage());
    }

    
// }}}
    // {{{ displayFatalError(eobj)

    /**
     * @param object PEAR_Error object
     */
    
function displayFatalError($eobj)
    {
        
$this->displayError($eobj);
        exit(
1);
    }

    
// }}}
    // {{{ displayHeading(title)

    
function displayHeading($title)
    {
        
trigger_error("PEAR_Frontend_CLI::displayHeading deprecated"E_USER_ERROR);
    }

    function 
_displayHeading($title)
    {
        print 
$this->lp.$this->bold($title)."\n";
        print 
$this->lp.str_repeat("="strlen($title))."\n";
    }

    
// }}}
    // {{{ userDialog(prompt, [type], [default])

    
function userDialog($command$prompts$types = array(), $defaults = array())
    {
        
$result = array();
        if (
is_array($prompts)) {
            
$fp fopen("php://stdin""r");
            foreach (
$prompts as $key => $prompt) {
                
$type $types[$key];
                
$default = @$defaults[$key];
                if (
$type == 'password') {
                    
system('stty -echo');
                }
                print 
"$this->lp$prompt ";
                if (
$default) {
                    print 
"[$default] ";
                }
                print 
": ";
                
$line fgets($fp2048);
                if (
$type == 'password') {
                    
system('stty echo');
                    print 
"\n";
                }
                if (
$default && trim($line) == "") {
                    
$result[$key] = $default;
                } else {
                    
$result[$key] = $line;
                }
            }
            
fclose($fp);
        }
        return 
$result;
    }

    
// }}}
    // {{{ userConfirm(prompt, [default])

    
function userConfirm($prompt$default 'yes')
    {
        
trigger_error("PEAR_Frontend_CLI::userConfirm not yet converted"E_USER_ERROR);
        static 
$positives = array('y''yes''on''1');
        static 
$negatives = array('n''no''off''0');
        print 
"$this->lp$prompt [$default] : ";
        
$fp fopen("php://stdin""r");
        
$line fgets($fp2048);
        
fclose($fp);
        
$answer strtolower(trim($line));
        if (empty(
$answer)) {
            
$answer $default;
        }
        if (
in_array($answer$positives)) {
            return 
true;
        }
        if (
in_array($answer$negatives)) {
            return 
false;
        }
        if (
in_array($default$positives)) {
            return 
true;
        }
        return 
false;
    }

    
// }}}
    // {{{ startTable([params])

    
function startTable($params = array())
    {
        
trigger_error("PEAR_Frontend_CLI::startTable deprecated"E_USER_ERROR);
    }

    function 
_startTable($params = array())
    {
        
$params['table_data'] = array();
        
$params['widest'] = array();  // indexed by column
        
$params['highest'] = array(); // indexed by row
        
$params['ncols'] = 0;
        
$this->params $params;
    }

    
// }}}
    // {{{ tableRow(columns, [rowparams], [colparams])

    
function tableRow($columns$rowparams = array(), $colparams = array())
    {
        
trigger_error("PEAR_Frontend_CLI::tableRow deprecated"E_USER_ERROR);
    }

    function 
_tableRow($columns$rowparams = array(), $colparams = array())
    {
        
$highest 1;
        for (
$i 0$i sizeof($columns); $i++) {
            
$col = &$columns[$i];
            if (isset(
$colparams[$i]) && !empty($colparams[$i]['wrap'])) {
                
$col wordwrap($col$colparams[$i]['wrap'], "\n"0);
            }
            if (
strpos($col"\n") !== false) {
                
$multiline explode("\n"$col);
                
$w 0;
                foreach (
$multiline as $n => $line) {
                    if (
strlen($line) > $w) {
                        
$w strlen($line);
                    }
                }
                
$lines sizeof($multiline);
            } else {
                
$w strlen($col);
            }
            if (
$w > @$this->params['widest'][$i]) {
                
$this->params['widest'][$i] = $w;
            }
            
$tmp count_chars($columns[$i], 1);
            
// handle unix, mac and windows formats
            
$lines = (isset($tmp[10]) ? $tmp[10] : @$tmp[13]) + 1;
            if (
$lines $highest) {
                
$highest $lines;
            }
        }
        if (
sizeof($columns) > $this->params['ncols']) {
            
$this->params['ncols'] = sizeof($columns);
        }
        
$new_row = array(
            
'data' => $columns,
            
'height' => $highest,
            
'rowparams' => $rowparams,
            
'colparams' => $colparams,
            );
        
$this->params['table_data'][] = $new_row;
    }

    
// }}}
    // {{{ endTable()

    
function endTable()
    {
        
trigger_error("PEAR_Frontend_CLI::endTable deprecated"E_USER_ERROR);
    }

    function 
_endTable()
    {
        
extract($this->params);
        if (!empty(
$caption)) {
            
$this->_displayHeading($caption);
        }
        if (
count($table_data) == 0) {
            return;
        }
        if (!isset(
$width)) {
            
$width $widest;
        } else {
            for (
$i 0$i $ncols$i++) {
                if (!isset(
$width[$i])) {
                    
$width[$i] = $widest[$i];
                }
            }
        }
        
$border false;
        if (empty(
$border)) {
            
$cellstart '';
            
$cellend ' ';
            
$rowend '';
            
$padrowend false;
            
$borderline '';
        } else {
            
$cellstart '| ';
            
$cellend ' ';
            
$rowend '|';
            
$padrowend true;
            
$borderline '+';
            foreach (
$width as $w) {
                
$borderline .= str_repeat('-'$w strlen($cellstart) + strlen($cellend) - 1);
                
$borderline .= '+';
            }
        }
        if (
$borderline) {
            
$this->_displayLine($borderline);
        }
        for (
$i 0$i sizeof($table_data); $i++) {
            
extract($table_data[$i]);
            if (!
is_array($rowparams)) {
                
$rowparams = array();
            }
            if (!
is_array($colparams)) {
                
$colparams = array();
            }
            
$rowlines = array();
            if (
$height 1) {
                for (
$c 0$c sizeof($data); $c++) {
                    
$rowlines[$c] = preg_split('/(\r?\n|\r)/'$data[$c]);
                    if (
sizeof($rowlines[$c]) < $height) {
                        
$rowlines[$c] = array_pad($rowlines[$c], $height'');
                    }
                }
            } else {
                for (
$c 0$c sizeof($data); $c++) {
                    
$rowlines[$c] = array($data[$c]);
                }
            }
            for (
$r 0$r $height$r++) {
                
$rowtext '';
                for (
$c 0$c sizeof($data); $c++) {
                    if (isset(
$colparams[$c])) {
                        
$attribs array_merge($rowparams$colparams);
                    } else {
                        
$attribs $rowparams;
                    }
                    
$w = isset($width[$c]) ? $width[$c] : 0;
                    
//$cell = $data[$c];
                    
$cell $rowlines[$c][$r];
                    
$l strlen($cell);
                    if (
$l $w) {
                        
$cell substr($cell0$w);
                    }
                    if (isset(
$attribs['bold'])) {
                        
$cell $this->bold($cell);
                    }
                    if (
$l $w) {
                        
// not using str_pad here because we may
                        // add bold escape characters to $cell
                        
$cell .= str_repeat(' '$w $l);
                    }

                    
$rowtext .= $cellstart $cell $cellend;
                }
                if (!
$border) {
                    
$rowtext rtrim($rowtext);
                }
                
$rowtext .= $rowend;
                
$this->_displayLine($rowtext);
            }
        }
        if (
$borderline) {
            
$this->_displayLine($borderline);
        }
    }

    
// }}}
    // {{{ outputData()

    
function outputData($data$command '_default')
    {
        switch (
$command) {
            case 
'install':
            case 
'upgrade':
            case 
'upgrade-all':
                if (isset(
$data['release_warnings'])) {
                    
$this->_displayLine('');
                    
$this->_startTable(array(
                        
'border' => false,
                        
'caption' => 'Release Warnings'
                        
));
                    
$this->_tableRow(array($data['release_warnings']), null, array(=> array('wrap' => 55)));
                    
$this->_endTable();
                    
$this->_displayLine('');
                }
                
$this->_displayLine($data['data']);
                break;
            case 
'search':
                
$this->_startTable($data);
                if (isset(
$data['headline']) && is_array($data['headline'])) {
                    
$this->_tableRow($data['headline'], array('bold' => true), array(=> array('wrap' => 55)));
                }

                foreach(
$data['data'] as $category) {
                    foreach(
$category as $pkg) {
                        
$this->_tableRow($pkgnull, array(=> array('wrap' => 55)));
                    }
                };
                
$this->_endTable();
                break;
            case 
'list-all':
                
$this->_startTable($data);
                if (isset(
$data['headline']) && is_array($data['headline'])) {
                    
$this->_tableRow($data['headline'], array('bold' => true), array(=> array('wrap' => 55)));
                }

                foreach(
$data['data'] as $category) {
                    foreach(
$category as $pkg) {
                        unset(
$pkg[3]);
                        unset(
$pkg[4]);
                        
$this->_tableRow($pkgnull, array(=> array('wrap' => 55)));
                    }
                };
                
$this->_endTable();
                break;
            case 
'config-show':
                
$data['border'] = false;
                
$opts = array(=> array('wrap' => 30),
                              
=> array('wrap' => 20),
                              
=> array('wrap' => 35));
                
$this->_startTable($data);
                if (isset(
$data['headline']) && is_array($data['headline'])) {
                    
$this->_tableRow($data['headline'],
                                     array(
'bold' => true),
                                     
$opts);
                }
                foreach(
$data['data'] as $group) {
                    foreach(
$group as $value) {
                        if (
$value[2] == '') {
                            
$value[2] = "<not set>";
                        }
                        
$this->_tableRow($valuenull$opts);
                    }
                }
                
$this->_endTable();
                break;
            case 
'remote-info':
                
$data = array(
                    
'caption' => 'Package details:',
                    
'border' => false,
                    
'data' => array(
                        array(
"Latest",    $data['stable']),
                        array(
"Installed"$data['installed']),
                        array(
"Package",   $data['name']),
                        array(
"License",   $data['license']),
                        array(
"Category",  $data['category']),
                        array(
"Summary",   $data['summary']),
                        array(
"Description"$data['description']),
                        ),
                    );
            default: {
                if (
is_array($data)) {
                    
$this->_startTable($data);
                    
$count count($data['data'][0]);
                    if (
$count == 2) {
                        
$opts = array(=> array('wrap' => 25),
                                      
=> array('wrap' => 48)
                        );
                    } elseif (
$count == 3) {
                        
$opts = array(=> array('wrap' => 30),
                                      
=> array('wrap' => 20),
                                      
=> array('wrap' => 35)
                        );
                    } else {
                        
$opts null;
                    }
                    if (isset(
$data['headline']) && is_array($data['headline'])) {
                        
$this->_tableRow($data['headline'],
                                         array(
'bold' => true),
                                         
$opts);
                    }
                    foreach(
$data['data'] as $row) {
                        
$this->_tableRow($rownull$opts);
                    }
                    
$this->_endTable();
                } else {
                    
$this->_displayLine($data);
                }
            }
        }
    }

    
// }}}
    // {{{ log(text)


    
function log($text$append_crlf true)
    {
        if (
$append_crlf) {
            return 
$this->_displayLine($text);
        }
        return 
$this->_display($text);
    }


    
// }}}
    // {{{ bold($text)

    
function bold($text)
    {
        if (empty(
$this->term['bold'])) {
            return 
strtoupper($text);
        }
        return 
$this->term['bold'] . $text $this->term['normal'];
    }

    
// }}}
}

?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0325 ]--