diff options
author | Michal Čihař <michal@cihar.com> | 2016-03-18 11:16:02 +0100 |
---|---|---|
committer | Michal Čihař <michal@cihar.com> | 2016-03-18 11:16:02 +0100 |
commit | c258b56f669e13c041a754c8ca476b4ea8366e91 (patch) | |
tree | 6e04fbf11ce2532f36b9eb4dc96ac59bbf8336ca /src | |
parent | bc0fc19c67dab8759224d6323b477ea825843470 (diff) | |
download | sql-parser-c258b56f669e13c041a754c8ca476b4ea8366e91.zip sql-parser-c258b56f669e13c041a754c8ca476b4ea8366e91.tar.gz sql-parser-c258b56f669e13c041a754c8ca476b4ea8366e91.tar.bz2 |
Add command line script for highlighting SQL query
Signed-off-by: Michal Čihař <michal@cihar.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/Utils/CLI.php | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/Utils/CLI.php b/src/Utils/CLI.php new file mode 100644 index 0000000..77da9ac --- /dev/null +++ b/src/Utils/CLI.php @@ -0,0 +1,69 @@ +<?php + +/** + * CLI interface + * + * @package SqlParser + * @subpackage Utils + */ +namespace SqlParser\Utils; + +/** + * CLI interface + * + * @category Exceptions + * @package SqlParser + * @subpackage Utils + * @author Michal Čihař <michal@cihar.com> + * @license http://opensource.org/licenses/GPL-2.0 GNU Public License + */ +class CLI +{ + public function usage() + { + echo "Usage: highlight-query --query SQL [--format html|cli|text]\n"; + } + + public function parse() + { + $longopts = array('help', 'query:', 'format:'); + $params = getopt( + 'hq:f:', $longopts + ); + foreach ($longopts as $value) { + $value = rtrim($value, ':'); + if (isset($params[$value])) { + $params[$value[0]] = $params[$value]; + } + } + if (! isset($params['f'])) { + $params['f'] = 'cli'; + } + if (! in_array($params['f'], array('html', 'cli', 'text'))) { + return false; + } + return $params; + } + + public function run() + { + $params = $this->parse(); + if ($params === false) { + return 1; + } + if (isset($params['h'])) { + $this->usage(); + return 0; + } + if (isset($params['q'])) { + echo Formatter::format( + $params['q'], array('type' => $params['f']) + ); + echo "\n"; + return 0; + } + echo "ERROR: Missing parameters!\n"; + $this->usage(); + return 1; + } +} |