blob: 324501ce0abe1aa9a7ffaabea8d53c56ac33960a [file]
@echo off
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,
REM software distributed under the License is distributed on an
REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
REM KIND, either express or implied. See the License for the
REM specific language governing permissions and limitations
REM under the License.
@echo off
title TsFile Backup Tool
if "%OS%" == "Windows_NT" setlocal
@REM -----------------------------------------------------------------------------
@REM 1. Dynamically infer tool root and IOTDB_HOME (Smart Fallback)
@REM -----------------------------------------------------------------------------
pushd "%~dp0..\.." >nul
set "TOOL_ROOT=%CD%"
@REM Fallback: If IOTDB_HOME is not explicitly set by the user, default to the current directory.
if NOT DEFINED IOTDB_HOME set "IOTDB_HOME=%CD%"
popd >nul
@REM -----------------------------------------------------------------------------
@REM 2. Strict Environment Validation
@REM -----------------------------------------------------------------------------
if NOT DEFINED JAVA_HOME goto :err_java
@REM -----------------------------------------------------------------------------
@REM 3. JVM Options and Dependency Assembly
@REM -----------------------------------------------------------------------------
if NOT DEFINED MAIN_CLASS set MAIN_CLASS=org.apache.iotdb.tool.pipe.TsFileBackup
@REM Centralized system properties and encoding settings
set "JAVA_OPTS=-ea -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8 -DIOTDB_HOME="%IOTDB_HOME%""
@REM Elegant dependency loading using wildcards (*) to avoid string concatenation hell
set "CLASSPATH=%TOOL_ROOT%\lib\*;%IOTDB_HOME%\lib\*"
@REM -----------------------------------------------------------------------------
@REM 4. Core Execution and Exit Code Propagation
@REM -----------------------------------------------------------------------------
"%JAVA_HOME%\bin\java" %JAVA_OPTS% -cp "%CLASSPATH%" %MAIN_CLASS% %*
@REM Accurately capture the exit status code of the Java process
set ret_code=%ERRORLEVEL%
goto finally
@REM -----------------------------------------------------------------------------
@REM Error Handling Block
@REM -----------------------------------------------------------------------------
:err_java
echo [ERROR] JAVA_HOME environment variable must be set!
set ret_code=1
pause
goto finally
@REM -----------------------------------------------------------------------------
@REM Cleanup and Exit
@REM -----------------------------------------------------------------------------
:finally
if "%OS%" == "Windows_NT" endlocal
EXIT /B %ret_code%