summaryrefslogtreecommitdiffstats
path: root/sqlglot/__main__.py
diff options
context:
space:
mode:
Diffstat (limited to 'sqlglot/__main__.py')
-rw-r--r--sqlglot/__main__.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/sqlglot/__main__.py b/sqlglot/__main__.py
new file mode 100644
index 0000000..25200c4
--- /dev/null
+++ b/sqlglot/__main__.py
@@ -0,0 +1,69 @@
+import argparse
+
+import sqlglot
+
+parser = argparse.ArgumentParser(description="Transpile SQL")
+parser.add_argument("sql", metavar="sql", type=str, help="SQL string to transpile")
+parser.add_argument(
+ "--read",
+ dest="read",
+ type=str,
+ default=None,
+ help="Dialect to read default is generic",
+)
+parser.add_argument(
+ "--write",
+ dest="write",
+ type=str,
+ default=None,
+ help="Dialect to write default is generic",
+)
+parser.add_argument(
+ "--no-identify",
+ dest="identify",
+ action="store_false",
+ help="Don't auto identify fields",
+)
+parser.add_argument(
+ "--no-pretty",
+ dest="pretty",
+ action="store_false",
+ help="Compress sql",
+)
+parser.add_argument(
+ "--parse",
+ dest="parse",
+ action="store_true",
+ help="Parse and return the expression tree",
+)
+parser.add_argument(
+ "--error-level",
+ dest="error_level",
+ type=str,
+ default="RAISE",
+ help="IGNORE, WARN, RAISE (default)",
+)
+
+
+args = parser.parse_args()
+error_level = sqlglot.ErrorLevel[args.error_level.upper()]
+
+if args.parse:
+ sqls = [
+ repr(expression)
+ for expression in sqlglot.parse(
+ args.sql, read=args.read, error_level=error_level
+ )
+ ]
+else:
+ sqls = sqlglot.transpile(
+ args.sql,
+ read=args.read,
+ write=args.write,
+ identify=args.identify,
+ pretty=args.pretty,
+ error_level=error_level,
+ )
+
+for sql in sqls:
+ print(sql)