Annotation of embedaddon/curl/projects/checksrc.bat, revision 1.1.1.1

1.1       misho       1: @echo off
                      2: rem ***************************************************************************
                      3: rem *                                  _   _ ____  _
                      4: rem *  Project                     ___| | | |  _ \| |
                      5: rem *                             / __| | | | |_) | |
                      6: rem *                            | (__| |_| |  _ <| |___
                      7: rem *                             \___|\___/|_| \_\_____|
                      8: rem *
                      9: rem * Copyright (C) 2014 - 2020, Steve Holme, <steve_holme@hotmail.com>.
                     10: rem *
                     11: rem * This software is licensed as described in the file COPYING, which
                     12: rem * you should have received as part of this distribution. The terms
                     13: rem * are also available at https://curl.haxx.se/docs/copyright.html.
                     14: rem *
                     15: rem * You may opt to use, copy, modify, merge, publish, distribute and/or sell
                     16: rem * copies of the Software, and permit persons to whom the Software is
                     17: rem * furnished to do so, under the terms of the COPYING file.
                     18: rem *
                     19: rem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
                     20: rem * KIND, either express or implied.
                     21: rem *
                     22: rem ***************************************************************************
                     23: 
                     24: :begin
                     25:   rem Check we are running on a Windows NT derived OS
                     26:   if not "%OS%" == "Windows_NT" goto nodos
                     27: 
                     28:   rem Set our variables
                     29:   setlocal
                     30:   set CHECK_LIB=TRUE
                     31:   set CHECK_SRC=TRUE
                     32:   set CHECK_TESTS=TRUE
                     33:   set CHECK_EXAMPLES=TRUE
                     34:   set SRC_DIR=
                     35:   set CUR_DIR=%cd%
                     36:   set ARG0_DIR=%~dp0
                     37: 
                     38: :parseArgs
                     39:   if "%~1" == "" goto prerequisites
                     40: 
                     41:   if /i "%~1" == "-?" (
                     42:     goto syntax
                     43:   ) else if /i "%~1" == "-h" (
                     44:     goto syntax
                     45:   ) else if /i "%~1" == "-help" (
                     46:     goto syntax
                     47:   ) else if /i "%~1" == "lib" (
                     48:     set CHECK_LIB=TRUE
                     49:     set CHECK_SRC=FALSE
                     50:     set CHECK_TESTS=FALSE
                     51:     set CHECK_EXAMPLES=FALSE
                     52:   ) else if /i "%~1" == "src" (
                     53:     set CHECK_LIB=FALSE
                     54:     set CHECK_SRC=TRUE
                     55:     set CHECK_TESTS=FALSE
                     56:     set CHECK_EXAMPLES=FALSE
                     57:   ) else if /i "%~1" == "tests" (
                     58:     set CHECK_LIB=FALSE
                     59:     set CHECK_SRC=FALSE
                     60:     set CHECK_TESTS=TRUE
                     61:     set CHECK_EXAMPLES=FALSE
                     62:   ) else if /i "%~1" == "examples" (
                     63:     set CHECK_LIB=FALSE
                     64:     set CHECK_SRC=FALSE
                     65:     set CHECK_TESTS=FALSE
                     66:     set CHECK_EXAMPLES=TRUE
                     67:   ) else (
                     68:     if not defined SRC_DIR (
                     69:       set SRC_DIR=%~1%
                     70:     ) else (
                     71:       goto unknown
                     72:     )
                     73:   )
                     74: 
                     75:   shift & goto parseArgs
                     76: 
                     77: :prerequisites
                     78:   rem Check we have Perl in our path
                     79:   perl --version <NUL 1>NUL 2>&1
                     80:   if errorlevel 1 (
                     81:     rem It isn't so check we have it installed and set the path if it is
                     82:     if exist "%SystemDrive%\Perl" (
                     83:       set "PATH=%SystemDrive%\Perl\bin;%PATH%"
                     84:     ) else (
                     85:       if exist "%SystemDrive%\Perl64" (
                     86:         set "PATH=%SystemDrive%\Perl64\bin;%PATH%"
                     87:       ) else (
                     88:         goto noperl
                     89:       )
                     90:     )
                     91:   )
                     92: 
                     93: :configure
                     94:   if "%SRC_DIR%" == "" (
                     95:     rem Are we being executed from the "projects" or main directory?
                     96:     if "%CUR_DIR%\" == "%ARG0_DIR%" (
                     97:       set SRC_DIR=..
                     98:     ) else if exist projects (
                     99:       if exist docs (
                    100:         if exist lib (
                    101:           if exist src (
                    102:             if exist tests (
                    103:               set SRC_DIR=.
                    104:             )
                    105:           )
                    106:         )
                    107:       )
                    108:     )
                    109:   )
                    110:   if not exist "%SRC_DIR%" goto nosrc
                    111: 
                    112: :start
                    113:   if "%CHECK_SRC%" == "TRUE" (
                    114:     rem Check the src directory
                    115:     if exist %SRC_DIR%\src (
                    116:       for /f "delims=" %%i in ('dir "%SRC_DIR%\src\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\src" -Wtool_hugehelp.c "%%i"
                    117:       for /f "delims=" %%i in ('dir "%SRC_DIR%\src\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\src" "%%i"
                    118:     )
                    119:   )
                    120: 
                    121:   if "%CHECK_LIB%" == "TRUE" (
                    122:     rem Check the lib directory
                    123:     if exist %SRC_DIR%\lib (
                    124:       for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib" "%%i"
                    125:       for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib" -Wcurl_config.h.cmake -Wcurl_config.h.in -Wcurl_config.h "%%i"
                    126:     )
                    127: 
                    128:     rem Check the lib\vauth directory
                    129:     if exist %SRC_DIR%\lib\vauth (
                    130:       for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vauth\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vauth" "%%i"
                    131:       for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vauth\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vauth" "%%i"
                    132:     )
                    133: 
                    134:     rem Check the lib\vquic directory
                    135:     if exist %SRC_DIR%\lib\vquic (
                    136:       for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vquic\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vquic" "%%i"
                    137:       for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vquic\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vquic" "%%i"
                    138:     )
                    139: 
                    140:     rem Check the lib\vssh directory
                    141:     if exist %SRC_DIR%\lib\vssh (
                    142:       for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vssh\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vssh" "%%i"
                    143:       for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vssh\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vssh" "%%i"
                    144:     )
                    145: 
                    146:     rem Check the lib\vtls directory
                    147:     if exist %SRC_DIR%\lib\vtls (
                    148:       for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vtls\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vtls" "%%i"
                    149:       for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vtls\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vtls" "%%i"
                    150:     )
                    151:   )
                    152: 
                    153:   if "%CHECK_TESTS%" == "TRUE" (
                    154:     rem Check the tests\libtest directory
                    155:     if exist %SRC_DIR%\tests\libtest (
                    156:       for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\libtest\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\libtest" "%%i"
                    157:       for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\libtest\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\libtest" "%%i"
                    158:     )
                    159: 
                    160:     rem Check the tests\unit directory
                    161:     if exist %SRC_DIR%\tests\unit (
                    162:       for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\unit\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\unit" "%%i"
                    163:       for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\unit\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\unit" "%%i"
                    164:     )
                    165: 
                    166:     rem Check the tests\server directory
                    167:     if exist %SRC_DIR%\tests\server (
                    168:       for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\server\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\server" "%%i"
                    169:       for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\server\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\server" "%%i"
                    170:     )
                    171:   )
                    172: 
                    173:   if "%CHECK_EXAMPLES%" == "TRUE" (
                    174:     rem Check the docs\examples directory
                    175:     if exist %SRC_DIR%\docs\examples (
                    176:       for /f "delims=" %%i in ('dir "%SRC_DIR%\docs\examples\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\docs\examples" -ASNPRINTF "%%i"
                    177:     )
                    178:   )
                    179: 
                    180:   goto success
                    181: 
                    182: :syntax
                    183:   rem Display the help
                    184:   echo.
                    185:   echo Usage: checksrc [what] [directory]
                    186:   echo.
                    187:   echo What to scan:
                    188:   echo.
                    189:   echo lib       - Scan the libcurl source
                    190:   echo src       - Scan the command-line tool source
                    191:   echo tests     - Scan the library tests and unit tests
                    192:   echo examples  - Scan the examples
                    193:   echo.
                    194:   echo directory - Specifies the curl source directory
                    195:   goto success
                    196: 
                    197: :unknown
                    198:   echo.
                    199:   echo Error: Unknown argument '%1'
                    200:   goto error
                    201: 
                    202: :nodos
                    203:   echo.
                    204:   echo Error: Only a Windows NT based Operating System is supported
                    205:   goto error
                    206: 
                    207: :noperl
                    208:   echo.
                    209:   echo Error: Perl is not installed
                    210:   goto error
                    211: 
                    212: :nosrc
                    213:   echo.
                    214:   echo Error: "%SRC_DIR%" does not exist
                    215:   goto error
                    216: 
                    217: :error
                    218:   if "%OS%" == "Windows_NT" endlocal
                    219:   exit /B 1
                    220: 
                    221: :success
                    222:   endlocal
                    223:   exit /B 0

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>