gen-package-version v0.9.0: New: Auto-generate version/timestamp info

Nick Sabalausky via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sat Jun 13 22:24:05 PDT 2015


This was kind of taken from a cool trick I saw in dub's buildscript, but 
I figured it would be useful to have generalized in a convenient 
package, no messing with shell scripts or anything.

https://github.com/Abscissa/gen-package-version

gen-package-version: Automatically generate a D module with version and 
timestamp information (detected from git) every time your program or 
library is built.

Additionally. all your in-between builds will automatically have their 
own git-generated version number, including the git commit hash (for 
example: v1.2.0-1-g78f5cf9). So there's never any confusion as to which 
"version" of v1.2.0 you're running!

Full usage and instructions are at the link above, but here's a brief 
primer for those using it with dub:

To use:
=======

Add this to your dub.json:

-----------------------------------------------------
"dependencies": {
     "gen-package-version": "~>0.9.0"
},
"preGenerateCommands":
     ["dub run gen-package-version -- package.name --src=path/to/src"]
-----------------------------------------------------

It'll generate "path/to/src/package/name/packageVersion.d".

Then just import that and use:

-----------------------------------------------------
module package.name.main;

import std.stdio;
import package.name.packageVersion;

void main()
{
     writeln("My Cool Program ", packageVersion);
     writeln("Built on ", packageTimestamp);
}
-----------------------------------------------------



More information about the Digitalmars-d-announce mailing list