summaryrefslogtreecommitdiffstats
path: root/testing
diff options
context:
space:
mode:
authorMichael Mason <ms13sp@gmail.com>2009-03-31 22:09:04 +0000
committerMichael Mason <ms13sp@gmail.com>2009-03-31 22:09:04 +0000
commit2ecfae295feb533e2b3ce1a0aff085e8417bbf09 (patch)
tree67b522ac83ff721e95c7f237519608994eab6e9d /testing
parent00383643c874751ecb000eeac052ec7d244cab46 (diff)
downloadaports-2ecfae295feb533e2b3ce1a0aff085e8417bbf09.tar.bz2
aports-2ecfae295feb533e2b3ce1a0aff085e8417bbf09.tar.xz
unstable/hypermail moved to testing/hypermail. replaces old version
Diffstat (limited to 'testing')
-rw-r--r--testing/hypermail/APKBUILD13
-rw-r--r--testing/hypermail/mdir2mbox.lua96
2 files changed, 104 insertions, 5 deletions
diff --git a/testing/hypermail/APKBUILD b/testing/hypermail/APKBUILD
index 06ddf011..6e4f4123 100644
--- a/testing/hypermail/APKBUILD
+++ b/testing/hypermail/APKBUILD
@@ -1,15 +1,16 @@
# Contributor: Michael Mason <ms13sp@gmail.com>
pkgname=hypermail
-pkgver=2.1.8
+pkgver=2.2.0
pkgrel=0
pkgdesc="Mail Archiver"
-url="http://www.hypermail.org"
+url="http://www.hypermail-project.org"
license="GPL"
-depends="uclibc pcre"
+depends="uclibc pcre lua"
makedepends="pcre-dev bison"
install=
subpackages=""
-source="http://www.hypermail.org/dist/$pkgname-$pkgver.tar.gz"
+source="http://www.hypermail-project.org/$pkgname-$pkgver.tar.gz
+ mdir2mbox.lua"
build() {
cd "$srcdir/$pkgname-$pkgver"
@@ -27,7 +28,9 @@ build() {
install -m755 -D archive/rdmsg "$pkgdir"/usr/bin/rdmsg
install -m755 -D archive/msg2archive "$pkgdir"/usr/bin/msgarchive
install -m755 -D src/hypermail "$pkgdir"/usr/bin/hypermail
+ install -m755 -D "$srcdir"/mdir2mbox.lua "$pkgdir"/usr/bin/mdir2mbox.lua
}
-md5sums="bacd95589f2f3ca426631461fd9237dd hypermail-2.1.8.tar.gz"
+md5sums="a064e36780ee41409c8c973f9c69927f hypermail-2.2.0.tar.gz
+079b00d4ea667a0efd6fd370b1a4d5d8 mdir2mbox.lua"
diff --git a/testing/hypermail/mdir2mbox.lua b/testing/hypermail/mdir2mbox.lua
new file mode 100644
index 00000000..dd883e02
--- /dev/null
+++ b/testing/hypermail/mdir2mbox.lua
@@ -0,0 +1,96 @@
+#!/usr/bin/lua
+-- This script takes a mlmmj archive "maildir format" directory and
+-- writes out an mbox formatted file to stdout
+-- Copyright (c) 2009 N. Angelacos under the GPL 2 License
+
+require "posix"
+
+-- command line parser, or exit
+check_command_line = function ()
+ local source_dir = arg[1]
+ local source_time = arg[2]
+
+ if (source_dir == nil ) then
+ io.stderr:write("mdir2mbox source_dir [hours]\n" ..
+ "Writes an mbox formatted file to stdout from the files in source_dir\n" ..
+ "If [hours] is given, then only files newer then [hours] are processed\n")
+ os.exit(-1)
+ end
+
+ if (posix.stat(source_dir, "type") ~= "directory") then
+ io.stderr:write(source_dir .. " is not a directory\n")
+ os.exit(-1)
+ end
+
+ return source_dir, source_time
+end
+
+-- Get candidates
+get_candidates = function (source, hours)
+ local all = posix.dir(source)
+ local candidates = {}
+ local timestamp = 0
+
+ if (hours) then
+ timestamp = os.time() - hours * 3600
+ end
+
+ for k,v in ipairs(all) do
+ local st = posix.stat(source .. "/" .. v)
+ if (st) and (st.type == "regular") and (st.mtime > timestamp) then
+ table.insert(candidates,source .. "/" .. v)
+ end
+ end
+
+ return candidates
+end
+
+file_to_mbox = function (path)
+ local fh = io.open(path)
+ if (fh == nil) then
+ return
+ end
+ local headers = ""
+ local l = ""
+ -- get headers
+ repeat
+ headers = headers .. l
+ l = (fh:read("*l") or "" ) .. "\n"
+ until (#l == 1)
+
+ local from = string.match("\n" .. headers, "\nFrom: ([^\n]*)")
+ if from == nil then
+ from = string.match("\n" .. headers, "\nReply-To: ([^\n]*)")
+ end
+ if from == nil then
+ from = "<nobody@nowhere.com>"
+ end
+ from = string.match(from, "<([^>]*)>") or string.match(from, "([^ ]*)")
+
+
+ local date = string.match("\n" .. headers, "\nDate: ([^\n]*)")
+ if date == nil then
+ date = os.date ("%c", posix.stat(path, "mtime"))
+ end
+ local weekday,day,month,year,time,offset = string.match(date, "([^,]*), +(%d+) (%a+) (%d+) ([%d:]*) ([%d]*)")
+
+ print ("From " .. from .. " " .. string.format("%s %s %s %s %s", weekday, month, day, time, year, offset ))
+ print (headers)
+
+ -- get rest of message
+ repeat
+ local foo = fh:read("*l")
+ if foo then
+ print(foo)
+ end
+ until (foo == nil)
+
+fh:close()
+end
+
+candidates = get_candidates(check_command_line ())
+
+for k,v in ipairs(candidates) do
+ file_to_mbox(v)
+end
+print ("")