diff options
| author | Philipp Gesang <phg@phi-gamma.net> | 2015-12-12 20:15:49 +0100 | 
|---|---|---|
| committer | Philipp Gesang <phg@phi-gamma.net> | 2015-12-12 20:15:49 +0100 | 
| commit | d12378937eb166900947717a588829ed247a3ba7 (patch) | |
| tree | dfa10fcd633209113484df095a191e3f47b0815a | |
| parent | 58c1e5b7e51731b62c3f68b7e7e8e9e6b429a106 (diff) | |
| parent | 2fdaee0d9a2687e99b1f44be15b6876be22a495b (diff) | |
| download | luaotfload-d12378937eb166900947717a588829ed247a3ba7.tar.gz | |
Merge pull request #307 from phi-gamma/master
[mkstatus] include git tag in status table
| -rwxr-xr-x | scripts/mkstatus | 30 | 
1 files changed, 23 insertions, 7 deletions
diff --git a/scripts/mkstatus b/scripts/mkstatus index 21d5e71..4b36a9d 100755 --- a/scripts/mkstatus +++ b/scripts/mkstatus @@ -12,6 +12,12 @@  -- This script generates a list of hashes that serves as the input  -- for the file integrity check (option --diagnose). md5 is all we can  -- assume in Luatex, so it’s really only a superficial test. +-- +-- Not that this file also incorporates the Git revision information. +-- Of this, only the actual commit hash is authoritative. The latest +-- tag is included for reference only. Besides that, it’s meaningless. +-- Do not rely on it: Two distinct versions of Luaotfload might very +-- well share the same tag.  kpse.set_program_name "luatex" @@ -133,31 +139,41 @@ local die = function (...)    os.exit (1)  end -local gitcmd = "git log -1 \z +local logcmd = "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 describecmd = "git describe --all" -local git_info = function () -  --io.write (gitcmd) -  --io.write "\n" -  local chan = iopopen (gitcmd) +local readpipe = function (cmd) +  local chan = iopopen (cmd)    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 () +  return data +end + +local git_info = function () +  --io.write (logcmd) +  --io.write "\n" +  local desc = readpipe (describecmd) +  if not desc then die "cannot parse git information" end +  local desc = string.explode (string.fullstrip (desc), "/")[2] +  local data = readpipe (logcmd)    if data and type (data) == "string" and data ~= "" then      data = load (data)      if not data then        die "cannot parse git information"      end -    return data () +    data = data () +    data.description = desc +    return data    end    die "cannot read from pipe"  end  | 
