You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
3.5 KiB
Batchfile
120 lines
3.5 KiB
Batchfile
5 years ago
|
@ECHO OFF
|
||
|
setlocal EnableDelayedExpansion
|
||
|
|
||
|
ECHO Start to package SLS php sdk...
|
||
|
|
||
|
SET SUCCESS_RET=0
|
||
|
SET ERROR_NO_SETUP_FILE=1
|
||
|
SET ERROR_NO_VERSION=2
|
||
|
SET ERROR_NO_DOCS=3
|
||
|
SET ERROR_ROBOCOPY=4
|
||
|
|
||
|
::
|
||
|
:: package all the output from php sdk source tree to release format (as bellow)
|
||
|
::
|
||
|
:: |--Aliyun
|
||
|
:: |--docs
|
||
|
:: |--sample
|
||
|
:: |--test
|
||
|
:: |--License.txt
|
||
|
:: |--Readme.txt
|
||
|
:: |--Log_Autoload.php
|
||
|
:: |--build.md
|
||
|
::
|
||
|
:: Usage: build.bat
|
||
|
::
|
||
|
:: Notes: this script must be run under root folder of php SDK code base.
|
||
|
|
||
|
::prepare environment variables
|
||
|
SET SOURCE_ROOT=Aliyun
|
||
|
SET DOCS_ROOT=docs
|
||
|
SET SAMPLE_ROOT=sample
|
||
|
SET TEST_ROOT=test
|
||
|
SET TITLE=SLS_PHP_SDK
|
||
|
SET PACKAGE_NAME=SLS_PHP_SDK
|
||
|
|
||
|
::STEP-1: get current version information from source codes
|
||
|
SET VERSION_FILE=Log_Autoload.php
|
||
|
|
||
|
IF NOT EXIST "%VERSION_FILE%" (
|
||
|
ECHO Failed to file %VERSION_FILE% on current directory.
|
||
|
EXIT /B %ERROR_NO_SETUP_FILE%
|
||
|
)
|
||
|
|
||
|
SET SDK_VERSION=
|
||
|
FOR /f "tokens=1-3 delims= " %%G in (%VERSION_FILE%) do (
|
||
|
IF "%%G"=="$version" (
|
||
|
IF "%%H"=="=" (
|
||
|
SET SDK_VERSION=%%I
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
|
||
|
::like $version = '0.4.4';
|
||
|
::trim spaces and ;
|
||
|
SET SDK_VERSION=%SDK_VERSION:'=%
|
||
|
SET SDK_VERSION=%SDK_VERSION:;=%
|
||
|
|
||
|
IF "SDK_VERSION"=="" (
|
||
|
ECHO Failed to get version information from source codes...
|
||
|
EXIT /B %ERROR_NO_VERSION%
|
||
|
)
|
||
|
|
||
|
::SETP-2: build documentation from latest php source codes by "phpDocumentor.phar" tool
|
||
|
SET PROD_VERSION=%SDK_VERSION:~0,3%
|
||
|
SET DOCS_AUTO_GENERATION_DIR=%DOCS_ROOT%\_build\html
|
||
|
|
||
|
ECHO %PROD_VERSION%
|
||
|
|
||
|
php tools\phpDocumentor.phar --title="%TITLE%" --defaultpackagename="%PACKAGE_NAME%" --template="responsive-twig" -d %SOURCE_ROOT% -t %DOCS_ROOT%
|
||
|
|
||
|
IF NOT EXIST "%DOCS_ROOT%"\index.html (
|
||
|
ECHO Failed to generate rst files for documentation.
|
||
|
EXIT /B %ERROR_NO_DOCS%
|
||
|
)
|
||
|
|
||
|
SET DOCS_AUTO_GENERATION_DIR=docs
|
||
|
|
||
|
::SETP-3: package all the files into output directory
|
||
|
SET OUTPUT_FOLDER=.\build\%SDK_VERSION%
|
||
|
SET OUTPUT_SOURCE_FOLDER=%OUTPUT_FOLDER%\%SOURCE_ROOT%
|
||
|
SET OUTPUT_DOCS_FOLDER=%OUTPUT_FOLDER%\%DOCS_ROOT%
|
||
|
SET OUTPUT_SAMPLE_FOLDER=%OUTPUT_FOLDER%\%SAMPLE_ROOT%
|
||
|
SET OUTPUT_API_REF_FOLDER=%OUTPUT_FOLDER%_API
|
||
|
SET OUTPUT_TEST_FOLDER=%OUTPUT_FOLDER%_TEST
|
||
|
|
||
|
IF EXIST "%OUTPUT_FOLDER%" RMDIR /Q /S "%OUTPUT_FOLDER%"
|
||
|
MKDIR "%OUTPUT_FOLDER%"
|
||
|
|
||
|
:: ROBOCOPY return code has special definition, please check http://ss64.com/nt/robocopy-exit.html
|
||
|
ROBOCOPY ".\%SOURCE_ROOT%" "%OUTPUT_SOURCE_FOLDER%" *.php /S /NFL /NDL
|
||
|
IF %ERRORLEVEL% GTR 1 ( EXIT /B %ERROR_ROBOCOPY% )
|
||
|
|
||
|
ROBOCOPY ".\%DOCS_AUTO_GENERATION_DIR%" "%OUTPUT_DOCS_FOLDER%" /S /NFL /NDL /XD .doctrees
|
||
|
IF %ERRORLEVEL% GTR 1 ( EXIT /B %ERROR_ROBOCOPY% )
|
||
|
|
||
|
ROBOCOPY ".\%SAMPLE_ROOT%" "%OUTPUT_SAMPLE_FOLDER%" /S /NFL /NDL
|
||
|
IF %ERRORLEVEL% GTR 1 ( EXIT /B %ERROR_ROBOCOPY% )
|
||
|
|
||
|
COPY /Y ".\*.txt" "%OUTPUT_FOLDER%"
|
||
|
COPY /Y ".\*.php" "%OUTPUT_FOLDER%"
|
||
|
|
||
|
IF EXIST "%OUTPUT_API_REF_FOLDER%" RMDIR /Q /S "%OUTPUT_API_REF_FOLDER%"
|
||
|
MKDIR "%OUTPUT_API_REF_FOLDER%"
|
||
|
|
||
|
:: ROBOCOPY return code has special definition, please check http://ss64.com/nt/robocopy-exit.html
|
||
|
ROBOCOPY ".\%DOCS_AUTO_GENERATION_DIR%" "%OUTPUT_API_REF_FOLDER%" /S /NFL /NDL /XD .doctrees
|
||
|
IF %ERRORLEVEL% GTR 1 ( EXIT /B %ERROR_ROBOCOPY% )
|
||
|
|
||
|
IF EXIST "%OUTPUT_TEST_FOLDER%" RMDIR /Q /S "%OUTPUT_TEST_FOLDER%"
|
||
|
MKDIR "%OUTPUT_TEST_FOLDER%"
|
||
|
|
||
|
:: ROBOCOPY return code has special definition, please check http://ss64.com/nt/robocopy-exit.html
|
||
|
ROBOCOPY ".\%TEST_ROOT%" "%OUTPUT_TEST_FOLDER%" /S /NFL /NDL
|
||
|
IF %ERRORLEVEL% GTR 1 ( EXIT /B %ERROR_ROBOCOPY% )
|
||
|
|
||
|
:END
|
||
|
ECHO on
|
||
|
:: exit script with successful exit code
|
||
|
@EXIT /B %SUCCESS_RET%
|