Annotation of embedaddon/curl/projects/checksrc.bat, revision 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>