Incorporate some git information into NetHack
Incorporate some git information into NetHack so that it
is potentially visible to a player. That's useful when
collecting details about the version that they are
running and, if the gitinfo is present, it can tie the
code to a specific git commit in the repository.
This modifies 'makedefs -v' to check for the presence of a data file
called dat/gitinfo.txt and if it is there, parse out its
contents, then write additional lines to include/date.h beyond
what 'makedefs -v' was previously putting in there, similar to
this sample:
#define NETHACK_GIT_SHA "0c84e564c78e2024e562d39539376ce2e21eec8e"
#define NETHACK_GIT_BRANCH "NetHack-3.6.0"
The contents of an appropriate dat/gitinfo.txt are as follows,
and trailing/leading whitespace is not significant:
githash = 0c84e564c78e2024e562d39539376ce2e21eec8e
gitbranch = NetHack-3.6.0
It also adjusts the contents of the 'v' version information to
include the additional git info when available.
Also adds some hooks DEVEL/hooksdir and a perl file to DEVEL
for simplifying and automating the deposit of dat/gitinfo.txt
so that it generally reflects the most current git commit.
DEVEL/gitinfo.pl can be used to build dat/gitinfo.txt at any
time without doing a commit, merge, or checkout.
perl DEVEL/gitinfo.pl
command line --version and -version support
To complement the extra information being provided in the
version by the 'v' command, this also adds support for the
following new command line arguments:
--version
-version Output the NetHack version string then exit.
--version:paste Output the NetHack version string and also copy it to
-version:paste the platform's paste buffer for insertion somewhere,
then exit.
If the paste variation of -version is requested on a platform that
hasn't incorporated any support for the capability, it will deliver
the version info then an error message, prior to exiting.
To support the extended -version:paste variation, a port needs to:
- provide a port-specific routine to perform
the paste buffer copy in a port code file.
- #define RUNTIME_PASTEBUF_SUPPORT in the include/portconf.h header file.
--skeleton--
void port_insert_pastebuf(buf)
char *buf;
{
/* insert code to copy the version info from buf into
platform's paste buffer in a supported way */
}
macosx and Windows have both added support for RUNTIME_PASTEBUF_SUPPORT
This commit is contained in:
@@ -85,6 +85,14 @@ Generate
|
||||
.I date.h
|
||||
and
|
||||
.I options
|
||||
file. It will read
|
||||
.I dat/gitinfo.txt
|
||||
,only if it is present, to obtain
|
||||
.B githash=
|
||||
and
|
||||
.B gitbranch=
|
||||
info and include related preprocessor #defines in
|
||||
.I date.h
|
||||
file.
|
||||
.br
|
||||
.TP
|
||||
|
||||
@@ -55,6 +55,9 @@ nethack \- Exploring The Mazes of Menace
|
||||
[
|
||||
.I playernames
|
||||
]
|
||||
[
|
||||
.B \-\-version
|
||||
]
|
||||
.ad
|
||||
.hy 14
|
||||
.\" Make sure path is not hyphenated below
|
||||
@@ -207,6 +210,17 @@ The playground must contain several auxiliary files such as help files,
|
||||
the list of top scorers, and a subdirectory
|
||||
.I save
|
||||
where games are saved.
|
||||
.PP
|
||||
.B \-\-version
|
||||
can be used to cause NetHack to show the version information it
|
||||
was compiled with, then exit. That will include the
|
||||
.I git
|
||||
commit hash if the information was available when the game was compiled.
|
||||
On some platforms, such as windows and macosx, a variation
|
||||
.B \-\-version:paste
|
||||
can be used to cause NetHack to show the version information, then exit,
|
||||
while also leaving a copy of the version information in the paste buffer
|
||||
or clipboard for potential insertion into things like bug reports.
|
||||
.SH AUTHORS
|
||||
.PP
|
||||
Jay Fenlason (+ Kenny Woodland, Mike Thome and Jon Payne) wrote the
|
||||
|
||||
Reference in New Issue
Block a user