diff options
Diffstat (limited to 'mkstatus')
-rwxr-xr-x | mkstatus | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/mkstatus b/mkstatus deleted file mode 100755 index 6e6e375..0000000 --- a/mkstatus +++ /dev/null @@ -1,149 +0,0 @@ -#!/usr/bin/env texlua ------------------------------------------------------------------------ --- FILE: mkstatus.lua --- USAGE: ./mkstatus.lua --- DESCRIPTION: writes the repository state --- REQUIREMENTS: luatex, the lualibs package --- AUTHOR: Philipp Gesang (Phg), <phg42.2a@gmail.com> --- VERSION: 1.0 --- CREATED: 2013-07-07 14:01:12+0200 ------------------------------------------------------------------------ --- --- 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. - -kpse.set_program_name "luatex" - -local md5 = require "md5" - -require "lualibs" - -local stringformat = string.format -local md5sumhexa = md5.sumhexa -local ioloaddata = io.loaddata -local iosavedata = io.savedata -local iopopen = io.popen - ------------------------------------------------------------------------ --- settings ------------------------------------------------------------------------ - -local filelist = "luaotfload-status.lua" --- result - -local names = { - --- only the runtime files and scripts - "luaotfload-auxiliary.lua", - "luaotfload-basics-gen.lua", - "luaotfload-basics-nod.lua", - "luaotfload-characters.lua", - "luaotfload-colors.lua", - "luaotfload-database.lua", - "luaotfload-diagnostics.lua", - "luaotfload-features.lua", - "luaotfload-fonts-cbk.lua", - "luaotfload-fonts-def.lua", - "luaotfload-fonts-enc.lua", - "luaotfload-fonts-ext.lua", - "luaotfload-fonts-lua.lua", - "luaotfload-fonts-tfm.lua", - "luaotfload-glyphlist.lua", - "luaotfload-letterspace.lua", - "luaotfload-loaders.lua", - "luaotfload-log.lua", - "luaotfload-main.lua", - "luaotfload-fontloader.lua", - "luaotfload-override.lua", - "luaotfload-parsers.lua", - "luaotfload-tool.lua", - "mkcharacters", - "mkglyphlist", - "mkstatus", -} - ------------------------------------------------------------------------ --- helpers ------------------------------------------------------------------------ - -local die = function (...) - io.stderr:write "[fatal error]: " - io.stderr:write (stringformat (...)) - io.stderr:write "\naborting.\n" - 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 ------------------------------------------------------------------------ - -local hash_file = function (fname) - if not lfs.isfile (fname) then - die ("cannot find %s.", fname) - end - local raw = ioloaddata (fname) - if not raw then - die ("cannot read from %s.", fname) - end - return md5sumhexa (raw) -end - -local hash_all -hash_all = function (list, acc) - if list == nil then - return hash_all (table.fastcopy (names), { }) - end - - local fname = list[#list] - list[#list] = nil - if fname then - local sum = hash_file (fname) - acc[#acc+1] = { fname, sum } - return hash_all (list, acc) - end - return acc -end - -local main = function () - local hashes = hash_all () - 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) - end - return 0 -end - -return main () - ---- vim:ft=lua:ts=2:et:sw=2 |