File: gen-version.cmd

package info (click to toggle)
qstat 2.17-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,220 kB
  • sloc: ansic: 24,706; makefile: 86; perl: 78; sh: 62
file content (53 lines) | stat: -rwxr-xr-x 1,410 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
@echo off

:: Default file paramters
SETLOCAL EnableDelayedExpansion
SET "VERSION_FILE=.version"
SET "TEMPLATE_FILE=version.h.tmpl"
SET "HEADER_FILE=version.h"

IF NOT [%1] == [] (
	SET "VERSION_FILE=%1"
)
IF NOT [%2] == [] (
	SET "TEMPLATE_FILE=%2"
)
IF NOT [%3] == [] (
	SET "HEADER_FILE=%3"
)

IF [!QSTAT_VERSION!] == [] (
	:: QSTAT_VERSION not set determine from git.
	FOR /F "usebackq" %%v IN (`cmd /c "git status --porcelain | grep -Fv 'gnuconfig.h.in~' | grep -E '^(M^| M^|\?\?)' | wc -l | sed -e 's/^[[:space:]]*//'"`) DO (
		IF NOT %%v == 0 (
			:: We have modifications so indicate so in the version.
			SET "QSTAT_VERSION=!QSTAT_VERSION!-modified"
		)
	)
)

IF EXIST "!VERSION_FILE!" (
	:: .version file exists load the value.
	set /p OLD_VERSION=<"!VERSION_FILE!"
)

IF NOT [!OLD_VERSION!] == [!QSTAT_VERSION!] (
	:: version has changed update the file.
	echo|set /p="!QSTAT_VERSION!" > "!VERSION_FILE!"
)

:: Update version.h if needed.
IF NOT EXIST "!HEADER_FILE!" (
	:: File doesn't exist to just create.
	sed "s/CHANGEME/!QSTAT_VERSION!/g" "!TEMPLATE_FILE!" > "!HEADER_FILE!"
) else (
	:: File exists compare with new.
	SET "TMP_FILE=!HEADER_FILE!.tmp"

	sed "s/CHANGEME/!QSTAT_VERSION!/g" "!TEMPLATE_FILE!" > "!TMP_FILE!"

	:: cmp doesn't correctly set ERRORLEVEL so we use redirection.
	cmp -s "!HEADER_FILE!" "!TMP_FILE!" && rm -f "!TMP_FILE!" || mv "!TMP_FILE!" "!HEADER_FILE!"
)

ENDLOCAL