blob: 6dd2da3bca917d4d7b6d590bba87bc3a03b02e47 [file] [log] [blame]
@echo off
@rem/*
@rem * Licensed to the Apache Software Foundation (ASF) under one
@rem * or more contributor license agreements. See the NOTICE file
@rem * distributed with this work for additional information
@rem * regarding copyright ownership. The ASF licenses this file
@rem * to you under the Apache License, Version 2.0 (the
@rem * "License"); you may not use this file except in compliance
@rem * with the License. You may obtain a copy of the License at
@rem *
@rem * http://www.apache.org/licenses/LICENSE-2.0
@rem *
@rem * Unless required by applicable law or agreed to in writing, software
@rem * distributed under the License is distributed on an "AS IS" BASIS,
@rem * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem * See the License for the specific language governing permissions and
@rem * limitations under the License.
@rem */
@rem
setlocal EnableExtensions EnableDelayedExpansion
rem ----
rem In order to pass in arguments with an equals symbol, use quotation marks.
rem For example
rem sqlline -u "jdbc:drill:zk=local" -n admin -p admin
rem ----
rem ----
rem Deal with command-line arguments
rem ----
:argactionstart
if -%1-==-- goto argactionend
set atleastonearg=0
if x%1 == x-q (
set QUERY=%2
set atleastonearg=1
shift
shift
)
if x%1 == x-e (
set QUERY=%2
set atleastonearg=1
shift
shift
)
if x%1 == x-f (
set FILE=%2
set atleastonearg=1
shift
shift
)
if x%1 == x--config (
set confdir=%2
set DRILL_CONF_DIR=%2
set atleastonearg=1
shift
shift
)
if "!atleastonearg!"=="0" (
set DRILL_ARGS=!DRILL_ARGS! %~1
shift
)
goto argactionstart
:argactionend
rem ----
rem Validate JAVA_HOME
rem ----
if "%JAVA_EXE%" == "" (set JAVA_EXE=java.exe)
if not "%JAVA_HOME%" == "" goto javaHomeSet
echo.
echo WARN: JAVA_HOME not found in your environment.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation
echo.
goto initDrillEnv
:javaHomeSet
if exist "%JAVA_HOME%\bin\%JAVA_EXE%" goto initDrillEnv
echo.
echo ERROR: JAVA_HOME is set to an invalid directory.
echo JAVA_HOME = %JAVA_HOME%
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation
echo.
goto error
:initDrillEnv
echo DRILL_ARGS - "%DRILL_ARGS%"
rem ----
rem Deal with Drill variables
rem ----
set DRILL_BIN_DIR=%~dp0
pushd %DRILL_BIN_DIR%..
set DRILL_HOME=%cd%
popd
if "test%DRILL_CONF_DIR%" == "test" (
set DRILL_CONF_DIR=%DRILL_HOME%\conf
)
if "test%DRILL_LOG_DIR%" == "test" (
set DRILL_LOG_DIR=%DRILL_HOME%\log
)
rem ----
rem Deal with Hadoop JARs, if HADOOP_HOME was specified
rem ----
if "test%HADOOP_HOME%" == "test" (
echo HADOOP_HOME not detected...
set USE_HADOOP_CP=0
) else (
echo Calculating HADOOP_CLASSPATH ...
for %%i in (%HADOOP_HOME%\lib\*.jar) do (
set IGNOREJAR=0
for /F "tokens=*" %%A in (%DRILL_BIN_DIR%\hadoop-excludes.txt) do (
echo.%%~ni|findstr /C:"%%A" >nul 2>&1
if not errorlevel 1 set IGNOREJAR=1
)
if "!IGNOREJAR!"=="0" set HADOOP_CLASSPATH=%%i;!HADOOP_CLASSPATH!
)
set HADOOP_CLASSPATH=%HADOOP_HOME%\conf;!HADOOP_CLASSPATH!
set USE_HADOOP_CP=1
)
rem ----
rem Deal with HBase JARs, if HBASE_HOME was specified
rem ----
if "test%HBASE_HOME%" == "test" (
echo HBASE_HOME not detected...
set USE_HBASE_CP=0
) else (
echo Calculating HBASE_CLASSPATH ...
for %%i in (%HBASE_HOME%\lib\*.jar) do (
set IGNOREJAR=0
for /F "tokens=*" %%A in (%DRILL_BIN_DIR%\hadoop-excludes.txt) do (
echo.%%~ni|findstr /C:"%%A" >nul 2>&1
if not errorlevel 1 set IGNOREJAR=1
)
if "!IGNOREJAR!"=="0" set HBASE_CLASSPATH=%%i;!HBASE_CLASSPATH!
)
set HBASE_CLASSPATH=%HADOOP_HOME%\conf;!HBASE_CLASSPATH!
set USE_HBASE_CP=1
)
echo Calculating Drill classpath...
set DRILL_CP=%DRILL_CONF_DIR%
if NOT "test%DRILL_CLASSPATH_PREFIX%"=="test" set DRILL_CP=!DRILL_CP!;%DRILL_CLASSPATH_PREFIX%
set DRILL_CP=%DRILL_CP%;%DRILL_HOME%\jars\*
set DRILL_CP=%DRILL_CP%;%DRILL_HOME%\extlib\*
if "test%USE_HADOOP_CP%"=="test1" set DRILL_CP=!DRILL_CP!;%HADOOP_CLASSPATH%
if "test%USE_HBASE_CP%"=="test1" set DRILL_CP=!DRILL_CP!;%HBASE_CLASSPATH%
set DRILL_CP=%DRILL_CP%;%DRILL_HOME%\lib\*
set DRILL_CP=%DRILL_CP%;%DRILL_HOME%\contrib\*
if NOT "test%DRILL_CLASSPATH%"=="test" set DRILL_CP=!DRILL_CP!;%DRILL_CLASSPATH%
set DRILL_SHELL_JAVA_OPTS=%DRILL_SHELL_JAVA_OPTS% -Dlog.path="%DRILL_LOG_DIR%\sqlline.log"
SET JAVA_CMD=%JAVA_HOME%\bin\%JAVA_EXE%
if "%JAVA_HOME%" == "" (set JAVA_CMD=%JAVA_EXE%)
set ERROR_CODE=0
if NOT "test%QUERY%"=="test" (
echo %QUERY% | "%JAVA_CMD%" %DRILL_SHELL_JAVA_OPTS% %DRILL_JAVA_OPTS% -cp "%DRILL_CP%" sqlline.SqlLine -d org.apache.drill.jdbc.Driver %DRILL_ARGS%
) else (
if NOT "test%FILE%"=="test" (
"%JAVA_CMD%" %DRILL_SHELL_JAVA_OPTS% %DRILL_JAVA_OPTS% -cp "%DRILL_CP%" sqlline.SqlLine -d org.apache.drill.jdbc.Driver %DRILL_ARGS% --run=%FILE%
) else (
"%JAVA_CMD%" %DRILL_SHELL_JAVA_OPTS% %DRILL_JAVA_OPTS% -cp "%DRILL_CP%" sqlline.SqlLine -d org.apache.drill.jdbc.Driver %DRILL_ARGS%
)
)
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
endlocal
exit /B %ERROR_CODE%