summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichal Čihař <michal@cihar.com>2016-03-18 11:16:02 +0100
committerMichal Čihař <michal@cihar.com>2016-03-18 11:16:02 +0100
commitc258b56f669e13c041a754c8ca476b4ea8366e91 (patch)
tree6e04fbf11ce2532f36b9eb4dc96ac59bbf8336ca /src
parentbc0fc19c67dab8759224d6323b477ea825843470 (diff)
downloadsql-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.php69
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;
+ }
+}