diff options
| author | Philipp Gesang <phg42.2a@gmail.com> | 2013-07-07 17:42:54 +0200 | 
|---|---|---|
| committer | Philipp Gesang <phg42.2a@gmail.com> | 2013-07-07 17:42:54 +0200 | 
| commit | 6b3ed4455d943fca0606a5e2a18e629c6e56a111 (patch) | |
| tree | c911a17c8cc4e7b3014c098302cd4dd3227a9775 /mkfilelist | |
| parent | 9504cd2bf2c83d1c8b2326967836ad2c9f03178c (diff) | |
| download | luaotfload-6b3ed4455d943fca0606a5e2a18e629c6e56a111.tar.gz | |
add git metadata to diagnostic info in luaotfload-tool.lua
Diffstat (limited to 'mkfilelist')
| -rw-r--r-- | mkfilelist | 34 | 
1 files changed, 33 insertions, 1 deletions
| @@ -23,6 +23,7 @@ local stringformat = string.format  local md5sumhexa   = md5.sumhexa  local ioloaddata   = io.loaddata  local iosavedata   = io.savedata +local iopopen      = io.popen  -----------------------------------------------------------------------  -- settings @@ -70,6 +71,35 @@ local die = function (...)    os.exit (1)  end +local gitcmd = "git log -1 \z +                    --format=\"return {\z +                                %n  revision  = [[%H]],\z +                                %n  timestamp = [[%cd]],\z +                                %n  committer = [[%cn <%ce>]],\z +                                %n}\" \z +                    --date=iso" + +local git_info = function () +  --io.write (gitcmd) +  --io.write "\n" +  local chan = iopopen (gitcmd) +  if not chan then +    die ("this script needs to be run inside \z +          the luaotfload git repository") +  end + +  local data = chan:read "*all" +  chan:close () +  if data and type (data) == "string" and data ~= "" then +    data = load (data) +    if not data then +      die "cannot parse git information" +    end +    return data () +  end +  die "cannot read from pipe" +end +  -----------------------------------------------------------------------  -- functionality  ----------------------------------------------------------------------- @@ -103,7 +133,9 @@ end  local main = function ()    local hashes      = hash_all () -  local serialized  = table.serialize (hashes, true) +  local notes       = git_info () +  local serialized  = table.serialize ({ notes = notes, +                                         hashes = hashes }, true)    local success     = io.savedata (filelist, serialized)    if success == false then      die ("could not write to %s.", filelist) | 
