strolch/li.strolch.dev/aheadStatus.cmd

48 lines
1.1 KiB
Batchfile

@echo off
REM #######################################################################
REM ##
REM ## Shows how far ahead each project is against origin
REM ##
REM #######################################################################
setlocal
setlocal ENABLEDELAYEDEXPANSION
echo.
echo INFO: Showing ahead status of all projects...
echo.
for /F %%i in ('type projects.lst') do (
set project=%%i
if not exist "..\!project!" (
echo INFO: Project !project! does not exist. Maybe you need to bootstrap?
) else (
cd ..\!project!
set tmpFile=%RANDOM%%RANDOM%.tmp
git rev-list origin..master --count > !tmpFile!
if !ERRORLEVEL! NEQ 0 (
del !tmpFile!
goto :FAIL
)
for /F %%i in ('type !tmpFile!') do (
set aheadCount=%%i
if !aheadCount! NEQ 0 (
echo INFO: !aheadCount! commits not pushed for project !project!
) else (
echo INFO: Project !project! is clean.
)
)
del !tmpFile!
if !ERRORLEVEL! NEQ 0 goto :FAIL
)
)
echo.
echo INFO: Done.
echo.
endlocal
exit /b 0
:FAIL
echo INFO: Failed to show ahead status a project.
exit /b !ERRORLEVEL!