私はLuaLaTexで私たちのための小さなプログラムを書いています。その目的は、与えられたuuidでQRコードを生成することです。 qrコードはページに印刷され、uuidはpdfのメタデータに保存されます。
texmf
それにもかかわらず、私のドキュメントのクラスファイルが呼び出すことができる実行可能ファイルをフォルダに含める方が良いと思いました。qrencode & convert
QRコードを生成するには、次のluaスクリプト(Linux)を使用します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
このスクリプトをスタンドアロンの実行可能ファイルに変換するには、luastatic
次のスクリプトを使用しましたmakeluaexec
。
#!/bin/sh
luastatic $1 `pkg-config --libs --cflags lua`
これにより実行可能ファイルがありますが、依然として依存関係があるため、qrencode & convert
別のLinuxシステムに移動するときにツールをインストールする必要があります。これらのツールを自分で作成した実行可能ファイルにパッケージ化する方法はありますか?
答え1
はい。このqrencode
プログラムは単なるラッパーです。libqrencode、convert
コマンドはラッパーだけです。イメージマジシャン。これらのコマンドを呼び出す代わりに、コードから直接ライブラリ関数を呼び出します。バインディングでhttps://github.com/isage/lua-imagickそしてhttps://github.com/vincascm/qrencodeこれに便利です。その後、呼び出し時に関連するluastatic
静的ライブラリを渡すだけです。