summaryrefslogtreecommitdiff
path: root/mkstatus
diff options
context:
space:
mode:
authorPhilipp Gesang <phg42.2a@gmail.com>2014-02-11 06:27:04 +0100
committerPhilipp Gesang <phg42.2a@gmail.com>2014-02-11 06:27:04 +0100
commitd9825168b0fb7b07e315879584487f9d4d9e9494 (patch)
tree5350b3b748209ff2754c70ed4bc01bee586ac178 /mkstatus
parentf874408006c90ba4ecdf96fb84a2a560fb30429f (diff)
downloadluaotfload-d9825168b0fb7b07e315879584487f9d4d9e9494.tar.gz
[*] move mkcharacters, mktests, mkglyphlist, mkstatus to separate subdirectory scripts
Diffstat (limited to 'mkstatus')
-rwxr-xr-xmkstatus149
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