#!/usr/bin/php
<?php
$colors = new Escape_Colors;

$bootstrap_settings['freepbx_auth'] = false;
if (!@include_once(getenv('FREEPBX_CONF') ? getenv('FREEPBX_CONF') : '/etc/freepbx.conf')) {
    include_once('/etc/asterisk/freepbx.conf');
}
if(!isset($amp_conf)) {
	die($colors->fg_color("bold_red", "Sorry FreePBX 2.9+ is required\n"));
}

require_once 'includes/functions.inc';
if(!include_once 'Console/Getopt.php') {
	die($colors->fg_color("bold_red", "Pear Console_Getopt Required\nTry to run 'pear install Console_Getopt'"));
}

$debug = NULL;
$endpoint = new endpointmanager();
echo $colors->fg_color("bold_red", "Endpoint Manager CLI\n\n");

$cg = new Console_Getopt();
$args = $cg->readPHPArgv();
array_shift($args);

$shortOpts = 'h::';
$longOpts  = array('user=', 'group=');

$params = $cg->getopt2($args, $shortOpts, $longOpts);

print_r(condense_arguments($params));


echo "\n";

if (PEAR::isError($params)) {
    echo 'Error: ' . $params->getMessage() . "\n";
    exit(1);
}

function &condense_arguments($params)
{
    $new_params = array();
    foreach ($params[0] as $param) {
        $new_params[$param[0]] = $param[1];
    }
    return $new_params;
}

/**
 * Color escapes for bash output
 */
class Escape_Colors
{
 private static $foreground = array(
  'black' => '0;30',
  'dark_gray' => '1;30',
  'red' => '0;31',
  'bold_red' => '1;31',
  'green' => '0;32',
  'bold_green' => '1;32',
  'brown' => '0;33',
  'yellow' => '1;33',
  'blue' => '0;34',
  'bold_blue' => '1;34',
  'purple' => '0;35',
  'bold_purple' => '1;35',
  'cyan' => '0;36',
  'bold_cyan' => '1;36',
  'white' => '1;37',
  'bold_gray' => '0;37',
 );
 
 private static $background = array(
  'black' => '40',
  'red' => '41',
  'magenta' => '45',
  'yellow' => '43',
  'green' => '42',
  'blue' => '44',
  'cyan' => '46',
  'light_gray' => '47',
 );
 
 /**
  * Make string appear in color
  */
 public static function fg_color($color, $string)
 {
  if (!isset(self::$foreground[$color]))
  {
   throw new Exception('Foreground color is not defined');
  }
 
  return "\033[" . self::$foreground[$color] . "m" . $string . "\033[0m";
 }
 
 /**
  * Make string appear with background color
  */
 public static function bg_color($color, $string)
 {
  if (!isset(self::$background[$color]))
  {
   throw new Exception('Background color is not defined');
  }
 
  return "\033[" . self::$background[$color] . 'm' . $string . "\033[0m";
 }
 
 /**
  * See what they all look like
  */
 public static function all_fg()
 {
  foreach (self::$foreground as $color => $code)
  {
   echo "$color - " . self::fg_color($color, 'Hello, world!') . PHP_EOL;
  }
 }
 
 /**
  * See what they all look like
  */
 public static function all_bg()
 {
  foreach (self::$background as $color => $code)
  {
   echo "$color - " . self::bg_color($color, 'Hello, world!') . PHP_EOL;
  }
 }
}
