1 # This is file 'vc-git.awk' from the vc bundle for TeX.
2 # The original file can be found at CTAN:support/vc.
3 # This file is Public Domain.
6 ### Process output of "git status".
7 if (script==
"status") {
15 ### Process output of "git log".
16 script==
"log" && /^Hash
:/ { Hash =
substr($
0, 2+match($
0, ":")) }
17 script==
"log" && /^Abr. Hash
:/ { AbrHash =
substr($
0, 2+match($
0, ":")) }
18 script==
"log" && /^Parent Hashes
:/ { ParentHashes =
substr($
0, 2+match($
0, ":")) }
19 script==
"log" && /^Abr. Parent Hashes
:/ { AbrParentHashes =
substr($
0, 2+match($
0, ":")) }
20 script==
"log" && /^Author Name
:/ { AuthorName =
substr($
0, 2+match($
0, ":")) }
21 script==
"log" && /^Author Email
:/ { AuthorEmail =
substr($
0, 2+match($
0, ":")) }
22 script==
"log" && /^Author Date
:/ { AuthorDate =
substr($
0, 2+match($
0, ":")) }
23 script==
"log" && /^Committer Name
:/ { CommitterName =
substr($
0, 2+match($
0, ":")) }
24 script==
"log" && /^Committer Email
:/ { CommitterEmail =
substr($
0, 2+match($
0, ":")) }
25 script==
"log" && /^Committer Date
:/ { CommitterDate =
substr($
0, 2+match($
0, ":")) }
27 ### Process output of "git status".
29 script==
"status" && /^
# Changes to be committed:/ { modified = 1 }
30 ### Unstaged modifications?
31 script==
"status" && /^
# Changed but not updated:/ { modified = 2 }
37 ### Process output of "git log".
39 ### Standard encoding is UTF-8.
40 if (Encoding ==
"") Encoding =
"UTF-8"
41 ### Extract relevant information from variables.
42 LongDate =
substr(AuthorDate
, 1, 25)
43 DateRAW =
substr(LongDate
, 1, 10)
46 gsub("-", "/", DateTEX
)
47 Time =
substr(LongDate
, 12, 14)
48 ### Write file identification to vc.tex.
49 print "%%% This file has been generated by the vc bundle for TeX."
50 print "%%% Do not edit this file!"
52 ### Write Git specific macros.
53 print "%%% Define Git specific macros.
"
54 print "\\gdef
\\GITHash
{" Hash "}%"
55 print "\\gdef\\GITAbrHash{" AbrHash
"}%"
56 print "\\gdef
\\GITParentHashes
{" ParentHashes "}%"
57 print "\\gdef\\GITAbrParentHashes{" AbrParentHashes
"}%"
58 print "\\gdef
\\GITAuthorName
{" AuthorName "}%"
59 print "\\gdef\\GITAuthorEmail{" AuthorEmail
"}%"
60 print "\\gdef
\\GITAuthorDate
{" AuthorDate "}%"
61 print "\\gdef\\GITCommitterName{" CommitterName
"}%"
62 print "\\gdef
\\GITCommitterEmail
{" CommitterEmail "}%"
63 print "\\gdef\\GITCommitterDate{" CommitterDate
"}%"
64 ### Write generic version control macros.
65 print "%%% Define generic version control macros.
"
66 print "\\gdef
\\VCRevision
{\\GITAbrHash
}%"
67 print "\\gdef\\VCAuthor{\\GITAuthorName}%"
68 print "\\gdef
\\VCDateRAW
{" DateRAW "}%"
69 print "\\gdef\\VCDateISO{" DateISO
"}%"
70 print "\\gdef
\\VCDateTEX
{" DateTEX "}%"
71 print "\\gdef\\VCTime{" Time
"}%"
72 print "\\gdef
\\VCModifiedText
{\\textcolor
{red
}{with local modifications!
}}%"
73 print "%%% Assume clean working copy."
74 print "\\gdef\\VCModified{0}%"
75 print "\\gdef
\\VCRevisionMod
{\\VCRevision
}%"
78 ### Process output of "git status".
79 if (script==
"status") {
80 print "%%% Is working copy modified?"
81 print "\\gdef\\VCModified{" modified
"}%"
83 print "\\gdef
\\VCRevisionMod
{\\VCRevision
}%"
85 print "\\gdef\\VCRevisionMod{\\VCRevision~\\VCModifiedText}%"