Estou escrevendo um pequeno programa para nós no LuaLaTex. O objetivo é produzir um código qr com um determinado uuid, o código qr é impresso na página e o uuid é armazenado nos metadados do pdf.
No entanto, achei que seria interessante ter um único executável na pasta texmf
para ser chamado pelo arquivo de classe do meu documento. Para gerar os códigos qr, usei (Linux) qrencode & convert
com este script de lua uuidqrcode.lua
:
#!/usr/bin/env lua
function gen_qr_uuid ()
local uuid = require 'uuid'
-- uuid.seed(math.randomseed(os.time()))
local encode = uuid()
local name = encode
local format = 'pdf'
local qrencode = string.format(
[[qrencode \
--type=EPS \
--output=%s.eps \
--size=10 \
--level=H \
--margin=0 \
--casesensitive \
%s \
]],
name,
encode)
local convert = string.format(
[[convert \
%s.eps \
%s.%s \
]],
name,
name,
format)
local rmeps = string.format("rm %s.eps", name)
os.execute(qrencode)
os.execute(convert)
os.execute(rmeps)
end
for i=1, (arg[1] or 1) do
gen_qr_uuid ()
end
Para converter esse script em um executável autônomo, usei luastatic
com este script makeluaexec
:
#!/bin/sh
luastatic $1 'pkg-config --libs --cflags lua'
Com isso eu tenho um único arquivo executável, mas só depende de qrencode & convert
, então quando eu mudo para outra máquina Linux, essas ferramentas precisam ser instaladas. Existe uma maneira de empacotar essas ferramentas em meu executável gerado automaticamente?