Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- set "file=%~dp0git_sha1.h"
- set "cmd=git rev-parse HEAD"
- set "cmd2=git show -s --format^=%%ci HEAD"
- set "cmd3=git rev-parse --short HEAD"
- set "git_sha1_orig=#define GIT_SHA1"
- set "git_sha1=#define GIT_SHA1"
- set "git_date_orig=#define GIT_DATE"
- set "git_date=#define GIT_DATE"
- set "git_short1_orig=#define GIT_SHORT1"
- set "git_short1=#define GIT_SHORT1"
- for /f "delims=" %%i in ('^"%cmd%^"') do set "git_sha1=%git_sha1% "%%i""
- for /f "delims=" %%i in ('^"%cmd2%^"') do set "git_date=%git_date% "%%i""
- set git_date_temp=%git_date: =%
- for /f "delims=" %%i in ('^"%cmd3%^"') do set "git_short1=%git_short1% "%%i""
- (echo #ifndef git_sha1H
- echo #define git_sha1H
- if not "%git_sha1%"=="%git_sha1_orig%" echo %git_sha1%
- if "%git_sha1%"=="%git_sha1_orig%" echo %git_sha1% "Git Hash Unavailable"
- if not "%git_date_temp%"=="%git_date_orig%" echo %git_date%
- if "%git_date_temp%"=="%git_date_orig%" echo %git_date% "%date%_%time: =0%"
- if not "%git_short1%"=="%git_short1_orig%" echo %git_short1%
- if "%git_short1%"=="%git_short1_orig%" echo %git_short1% "Git Short Hash Unavailable"
- echo #define GERA "In memory of Georgi Piskunov, 03/06/2021"
- echo #endif)>"%file%"
- rem echo #ifndef git_sha1H > %file%
- rem echo #define git_sha1H >> %file%
- rem if not "%git_sha1%"=="%git_sha1_orig%" echo %git_sha1% >> %file%
- rem if "%git_sha1%"=="%git_sha1_orig%" echo %git_sha1% "Git Hash Unavailable" >> %file%
- rem if not "%git_date_temp%"=="%git_date_orig%" echo %git_date% >> %file%
- rem if "%git_date_temp%"=="%git_date_orig%" echo %git_date% "%date%_%time: =0%" >> %file%
- rem echo #endif >> %file%
- rem from https://stackoverflow.com/questions/3814926/git-commit-date
- rem And per my usual pattern, I've immediately figured it out because I can't leave it alone and let people answer.
- rem I also needed to escape the carat in the format: `set cmd2=git show -s --format=^^=%%ci HEAD` works as expected.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement