@ECHO off set CALL_DIR=%CD% set HUB=%1 set PROJECT_NAME=%2 set SAVEDIR=%3 set PROJECT_SEARCH_CSV="%HUB%/project_search.csv?query=project%%3D"%PROJECT_NAME%"&scope=all" set CURL_CMD=curl set RESULT_FNAME=overall_results.csv set SEARCH_FNAME=project_search_results.csv cd /D %SAVEDIR% rm -fr * echo project id, most recent analysis id, notes >%RESULT_FNAME% (%CURL_CMD% %PROJECT_SEARCH_CSV% -o %SEARCH_FNAME%) set /a LINECOUNT=0 FOR /f %%j in ('find "" /v /c ^<%SEARCH_FNAME%') DO set /A LINECOUNT=%%j :: If no results, report and exit. if %LINECOUNT% == 1 ( echo No projects with URL-encoded name %PROJECT_NAME% were found. echo This may indicate one or more of the following. echo - The project name was not specified correctly (remember to URL-encode^). echo - You do not have PROJECT_EXISTS permission for the specified project. cd /D %CALL_DIR% exit /b ) :: If multiple results, report and keep going. if %LINECOUNT% GTR 2 ( echo Found multiple projects with URL-encoded name '%PROJECT_NAME%'. echo The script will attempt to report the most recent analysis of each. ) for /F "skip=1 tokens=*" %%L in (%SEARCH_FNAME%) do ( call :handle_csv_line "%RESULT_FNAME%" "%%L" ) cd /D %CALL_DIR% exit /b :handle_csv_line set OUTFILE=%1 set LINE=%2 :: obtain last column of line set LASTCOLUMN= set /A COUNTER=0 :LOOPBEGIN set /A COUNTER+=1 for /F "tokens=%COUNTER% delims=," %%A in (%LINE%) do ( if "%%A"=="" goto :LOOPEND set LASTCOLUMN=%%A goto :LOOPBEGIN) :LOOPEND :: extract URL type and ID from last column set LASTFIELD= set SECONDLASTFIELD= set /A COUNTER=0 :LOOPBEGIN set /A COUNTER+=1 for /F "tokens=%COUNTER%* delims=/" %%A in (%LINE%) do ( if "%%B"=="" goto :LOOPEND set SECONDLASTFIELD=%%A set LASTFIELD=%%B goto :LOOPBEGIN) :LOOPEND set RESULT_TYPE=%SECONDLASTFIELD% set RESULT_ID=%LASTFIELD:~0,-4% if "%RESULT_TYPE%"=="analysis" ( echo -,%RESULT_ID%,- >> %OUTFILE% ) else ( if "%RESULT_TYPE%"=="project" ( SETLOCAL ENABLEDELAYEDEXPANSION set "NO_ANALYSIS=No most recent analysis found. Either: a) project %RESULT_ID% has" set "NO_ANALYSIS=!NO_ANALYSIS! no analyses or b) you do not have ANALYSIS_EXISTS" set "NO_ANALYSIS=!NO_ANALYSIS! permission for the most recent analysis." echo %RESULT_ID%,-,!NO_ANALYSIS! >> %OUTFILE% ENDLOCAL ) else ( echo Unexpected result type %RESULT_TYPE% in search results. ) ) ) exit /b