qp.lua 964 B

1234567891011121314151617181920212223
  1. -----------------------------------------------------------------------------
  2. -- Little program to convert to and from Quoted-Printable
  3. -- LuaSocket sample files
  4. -- Author: Diego Nehab
  5. -----------------------------------------------------------------------------
  6. local ltn12 = require("ltn12")
  7. local mime = require("mime")
  8. local convert
  9. arg = arg or {}
  10. local mode = arg and arg[1] or "-et"
  11. if mode == "-et" then
  12. local normalize = mime.normalize()
  13. local qp = mime.encode("quoted-printable")
  14. local wrap = mime.wrap("quoted-printable")
  15. convert = ltn12.filter.chain(normalize, qp, wrap)
  16. elseif mode == "-eb" then
  17. local qp = mime.encode("quoted-printable", "binary")
  18. local wrap = mime.wrap("quoted-printable")
  19. convert = ltn12.filter.chain(qp, wrap)
  20. else convert = mime.decode("quoted-printable") end
  21. local source = ltn12.source.chain(ltn12.source.file(io.stdin), convert)
  22. local sink = ltn12.sink.file(io.stdout)
  23. ltn12.pump.all(source, sink)