|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
#!/usr/bin/env lua5.1
-- This file:
-- http://anggtwu.net/LUA/QPDFMerge.lua.html
-- http://anggtwu.net/LUA/QPDFMerge.lua
-- (find-angg "LUA/QPDFMerge.lua")
-- Author: Eduardo Ochs <eduardoochs@gmail.com>
--
-- (defun e () (interactive) (find-angg "LUA/QPDFMerge.lua"))
--
-- See: https://github.com/qpdf/qpdf/issues/11#issuecomment-18768487
-- qpdf --empty --pages $(for i in a*.pdf; do echo $i 1-z; done) -- b.pdf
-- (find-es "ps" "qpdf-merge")
-- (find-es "ps" "glue-pages")
--
-- «.update-all» (to "update-all")
MTable = Class {
type = "MTable",
from = function (stem)
return MTable.getincls(stem.."-tudo.tex")
:map("%s.pdf")
:map("%s 1-z")
:postoutput(stem)
:pretitle(stem)
:precmd()
end,
getincls = function (fname) return MTable.getincls0(ee_readfile(fname)) end,
getincls0 = function (bigstr)
local pat = "\n\\incl{(.-)}"
local m = MTable {}
for stem in bigstr:gmatch(pat) do table.insert(m, stem) end
return m
end,
__tostring = function (o) return o:tostring("\n") end,
__index = {
tostring = function (o, sep)
return table.concat(o, sep or "\n")
end,
map = function (o, f)
if type(f) == "string" then
local fmt = f
f = function (s) return format(fmt, s) end
end
return MTable(map(f, o))
end,
pre = function (m, s) table.insert(m, 1, s); return m end,
post = function (m, s) table.insert(m, s); return m end,
pretitle = function (m, stem) return m:pre(stem.."-tudo.pdf 1-1") end,
precmd = function (m, stem) return m:pre("qpdf --empty --pages") end,
postoutput = function (m, stem) return m:post("-- "..stem.."-Tudo.pdf") end,
},
}
-- (find-es "lua5" "run_options")
-- (find-angg "LUA/GetOpt1.lua" "GetOpt")
--
run_stem = function (stem)
local cmd0 = MTable.from(stem)
local cmd = cmd0:tostring" "
print(cmd)
print(getoutput(cmd))
end
run_options = function (a, b)
if a == nil then return
elseif a == "QPDFMerge" then return
elseif a == "-stem" then run_stem(b)
else PP("Bad options:", a, b)
end
end
run_options(...)
--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "QPDFMerge.lua"
chdir "~/LATEX/"
m = MTable.from "2023-1-C2"
= m
= m:tostring" "
= getoutput(m:tostring" ")
run_options("-stem", "2023-1-C2")
--]]
-- «update-all» (to ".update-all")
--[[
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/LATEX/
A=(
2019-1-C2 2019-1-C3
2019-2-C2 2019-2-C3
2020-1-C2 2020-1-C3
2020-2-C2 2020-2-C3
2021-1-C2 2021-1-C3
2021-2-C2 2021-2-C3
2022-1-C2 2022-1-C3
2022-2-C2 2022-2-C3
2023-1-C2 2023-2-C3 2023-1-C4 2023-1-ES
2023-2-C2 2023-2-C3
2024-1-C2 2024-1-C3
2024-2-C2 2024-2-C3
)
A=(
2025-1-C2 2025-1-C3
)
for i in $A; do echo ${i}-Tudo.pdf; done | tee /tmp/o
for i in $A; do ~/LUA/QPDFMerge.lua -stem $i; done
for i in $(cat /tmp/o); do echo http://anggtwu.net/LATEX/${i}; done
cd ~/LATEX/
cat /tmp/o
rsync -avvz -e ssh $(cat /tmp/o) $LINP/LATEX/
rsync -avvz -e ssh $(cat /tmp/o) $LINS/LATEX/
--]]
-- Local Variables:
-- coding: utf-8-unix
-- End: