Skip to content
This repository was archived by the owner on May 16, 2018. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
413 changes: 413 additions & 0 deletions library/Zend/Service/Console/Command.php

Large diffs are not rendered by default.

71 changes: 71 additions & 0 deletions library/Zend/Service/Console/Command/ParameterSource/Argv.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<?php
/**
* Zend Framework
*
* LICENSE
*
* This source file is subject to the new BSD license that is bundled
* with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://framework.zend.com/license/new-bsd
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* @category Zend
* @package Zend_Service_Console
* @subpackage Exception
* @version $Id$
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @copyright Copyright (c) 2009 - 2011, RealDolmen (http://www.realdolmen.com)
* @license http://phpazure.codeplex.com/license
*/

/**
* @see Zend_Service_Console_Command_ParameterSource_ParameterSourceInterface
*/
require_once 'Zend/Service/Console/Command/ParameterSource/ParameterSourceInterface.php';

/**
* @category Zend
* @package Zend_Service_Console
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @copyright Copyright (c) 2009 - 2011, RealDolmen (http://www.realdolmen.com)
* @license http://phpazure.codeplex.com/license
*/
class Zend_Service_Console_Command_ParameterSource_Argv
implements Zend_Service_Console_Command_ParameterSource_ParameterSourceInterface
{
/**
* Get value for a named parameter.
*
* @param mixed $parameter Parameter to get a value for
* @param array $argv Argument values passed to the script when run in console.
* @return mixed
*/
public function getValueForParameter($parameter, $argv = array())
{
// Default value
$parameterValue = null;

// Loop parameter inputs
foreach ($argv as $parameterInput) {
$parameterInput = explode('=', $parameterInput, 2);

if (in_array($parameterInput[0], $parameter->aliases)) {
$parameterValue = isset($parameterInput[1]) ? $parameterInput[1] : true;
break;
}
}
if (strtolower($parameterValue) == 'true') {
$parameterValue = true;
} else if (strtolower($parameterValue) == 'false') {
$parameterValue = false;
}

// Done!
return $parameterValue;
}
}
104 changes: 104 additions & 0 deletions library/Zend/Service/Console/Command/ParameterSource/ConfigFile.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
<?php
/**
* Zend Framework
*
* LICENSE
*
* This source file is subject to the new BSD license that is bundled
* with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://framework.zend.com/license/new-bsd
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* @category Zend
* @package Zend_Service_Console
* @subpackage Exception
* @version $Id$
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @copyright Copyright (c) 2009 - 2011, RealDolmen (http://www.realdolmen.com)
* @license http://phpazure.codeplex.com/license
*/

/**
* @see Zend_Service_Console_Command_ParameterSource_ParameterSourceInterface
*/
require_once 'Zend/Service/Console/Command/ParameterSource/ParameterSourceInterface.php';

/**
* @category Zend
* @package Zend_Service_Console
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @copyright Copyright (c) 2009 - 2011, RealDolmen (http://www.realdolmen.com)
* @license http://phpazure.codeplex.com/license
*/
class Zend_Service_Console_Command_ParameterSource_ConfigFile
implements Zend_Service_Console_Command_ParameterSource_ParameterSourceInterface
{
/**
* Get value for a named parameter.
*
* @param mixed $parameter Parameter to get a value for
* @param array $argv Argument values passed to the script when run in console.
* @return mixed
*/
public function getValueForParameter($parameter, $argv = array())
{
// Configuration file path
$configurationFilePath = null;

// Check if a path to a configuration file is specified
foreach ($argv as $parameterInput) {
$parameterInput = explode('=', $parameterInput, 2);

if (strtolower($parameterInput[0]) == '--configfile' || strtolower($parameterInput[0]) == '-f') {
if (!isset($parameterInput[1])) {
require_once 'Zend/Service/Console/Exception.php';
throw new Zend_Service_Console_Exception("No path to a configuration file is given. Specify the path using the --ConfigFile or -F switch.");
}
$configurationFilePath = $parameterInput[1];
break;
}
}

// Value given?
if (is_null($configurationFilePath)) {
return null;
}
if (!file_exists($configurationFilePath)) {
require_once 'Zend/Service/Console/Exception.php';
throw new Zend_Service_Console_Exception("Invalid configuration file given. Specify the correct path using the --ConfigFile or -F switch.");
}

// Parse values
$iniValues = parse_ini_file($configurationFilePath);

// Default value
$parameterValue = null;

// Loop aliases
foreach ($parameter->aliases as $alias) {
if (array_key_exists($alias, $iniValues)) {
$parameterValue = $iniValues[$alias]; break;
} else if (array_key_exists(strtolower($alias), $iniValues)) {
$parameterValue = $iniValues[strtolower($alias)]; break;
} else if (array_key_exists(str_replace('-', '', $alias), $iniValues)) {
$parameterValue = $iniValues[str_replace('-', '', $alias)]; break;
} else if (array_key_exists(strtolower(str_replace('-', '', $alias)), $iniValues)) {
$parameterValue = $iniValues[strtolower(str_replace('-', '', $alias))]; break;
}
}

if (strtolower($parameterValue) == 'true') {
$parameterValue = true;
} else if (strtolower($parameterValue) == 'false') {
$parameterValue = false;
}

// Done!
return $parameterValue;
}
}
75 changes: 75 additions & 0 deletions library/Zend/Service/Console/Command/ParameterSource/Env.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
<?php
/**
* Zend Framework
*
* LICENSE
*
* This source file is subject to the new BSD license that is bundled
* with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://framework.zend.com/license/new-bsd
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* @category Zend
* @package Zend_Service_Console
* @subpackage Exception
* @version $Id$
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @copyright Copyright (c) 2009 - 2011, RealDolmen (http://www.realdolmen.com)
* @license http://phpazure.codeplex.com/license
*/

/**
* @see Zend_Service_Console_Command_ParameterSource_ParameterSourceInterface
*/
require_once 'Zend/Service/Console/Command/ParameterSource/ParameterSourceInterface.php';

/**
* @category Zend
* @package Zend_Service_Console
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @copyright Copyright (c) 2009 - 2011, RealDolmen (http://www.realdolmen.com)
* @license http://phpazure.codeplex.com/license
*/
class Zend_Service_Console_Command_ParameterSource_Env
implements Zend_Service_Console_Command_ParameterSource_ParameterSourceInterface
{
/**
* Get value for a named parameter.
*
* @param mixed $parameter Parameter to get a value for
* @param array $argv Argument values passed to the script when run in console.
* @return mixed
*/
public function getValueForParameter($parameter, $argv = array())
{
// Default value
$parameterValue = null;

// Fetch value for parameter
foreach ($parameter->aliases as $alias) {
while (strpos($alias, '-') !== false) {
$alias = substr($alias, 1);
}
$value = getenv($alias);

if (!is_null($value) && $value !== false) {
$parameterValue = $value;
break;
}
}

if (strtolower($parameterValue) == 'true') {
$parameterValue = true;
} else if (strtolower($parameterValue) == 'false') {
$parameterValue = false;
}

// Done!
return $parameterValue;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<?php
/**
* Zend Framework
*
* LICENSE
*
* This source file is subject to the new BSD license that is bundled
* with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://framework.zend.com/license/new-bsd
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* @category Zend
* @package Zend_Service_Console
* @subpackage Exception
* @version $Id$
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @copyright Copyright (c) 2009 - 2011, RealDolmen (http://www.realdolmen.com)
* @license http://phpazure.codeplex.com/license
*/

/**
* @category Zend
* @package Zend_Service_Console
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @copyright Copyright (c) 2009 - 2011, RealDolmen (http://www.realdolmen.com)
* @license http://phpazure.codeplex.com/license
*/
interface Zend_Service_Console_Command_ParameterSource_ParameterSourceInterface
{
/**
* Get value for a named parameter.
*
* @param mixed $parameter Parameter to get a value for
* @param array $argv Argument values passed to the script when run in console.
* @return mixed
*/
public function getValueForParameter($parameter, $argv = array());
}
66 changes: 66 additions & 0 deletions library/Zend/Service/Console/Command/ParameterSource/Prompt.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<?php
/**
* Zend Framework
*
* LICENSE
*
* This source file is subject to the new BSD license that is bundled
* with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://framework.zend.com/license/new-bsd
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* @category Zend
* @package Zend_Service_Console
* @subpackage Exception
* @version $Id$
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @copyright Copyright (c) 2009 - 2011, RealDolmen (http://www.realdolmen.com)
* @license http://phpazure.codeplex.com/license
*/

/**
* @see Zend_Service_Console_Command_ParameterSource_ParameterSourceInterface
*/
require_once 'Zend/Service/Console/Command/ParameterSource/ParameterSourceInterface.php';

/**
* @category Zend
* @package Zend_Service_Console
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @copyright Copyright (c) 2009 - 2011, RealDolmen (http://www.realdolmen.com)
* @license http://phpazure.codeplex.com/license
*/
class Zend_Service_Console_Command_ParameterSource_Prompt
implements Zend_Service_Console_Command_ParameterSource_ParameterSourceInterface
{
/**
* Get value for a named parameter.
*
* @param mixed $parameter Parameter to get a value for
* @param array $argv Argument values passed to the script when run in console.
* @return mixed
*/
public function getValueForParameter($parameter, $argv = array())
{
// Default value
$parameterValue = null;

// Prompt the user
fwrite(STDOUT, "Supply a value for " . $parameter->aliases[0] . ": ");
/*if ($parameter->description != '' && !is_null($parameter->description)) {
fwrite(STDOUT, $parameter->description . ".\r\n");
}*/

while (is_null($parameterValue) || $parameterValue == '') {
$parameterValue = trim(fgets(STDIN));
}

// Done!
return $parameterValue;
}
}
Loading