diff options
| author | Thijs Schreijer <thijs@thijsschreijer.nl> | 2022-08-24 12:31:18 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-24 12:31:18 +0200 |
| commit | 87c48f3e4ddba13d9c014067e62568ba906cc410 (patch) | |
| tree | c99889ec0b9bbab2bc5ee14cd9046d0a122eb226 /samples/qp.lua | |
| parent | 95b7efa9da506ef968c1347edf3fc56370f0deed (diff) | |
| parent | 97d5194f302d3fb9fe27874d9b5f73004a208d01 (diff) | |
| download | luasocket-87c48f3e4ddba13d9c014067e62568ba906cc410.tar.gz luasocket-87c48f3e4ddba13d9c014067e62568ba906cc410.tar.bz2 luasocket-87c48f3e4ddba13d9c014067e62568ba906cc410.zip | |
Merge pull request #364 from lunarmodules/cleanup
Diffstat (limited to 'samples/qp.lua')
| -rw-r--r-- | samples/qp.lua | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/samples/qp.lua b/samples/qp.lua new file mode 100644 index 0000000..523238b --- /dev/null +++ b/samples/qp.lua | |||
| @@ -0,0 +1,23 @@ | |||
| 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) | ||
