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-1-C4 2023-1-ES
    2023-2-C2 2023-2-C3
)
A=(
    2024-1-C2 2024-1-C3
  )
A=(
    2024-2-C2
  )
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: