|
@@ -3,6 +3,7 @@
|
|
|
local cli = require "cli"
|
|
|
local plpath = require "pl.path"
|
|
|
local signal = require "posix.signal"
|
|
|
+local sllog = require "sllog"
|
|
|
local watchdog = require "watchdog"
|
|
|
|
|
|
local sub = require "pocket_archive.submission"
|
|
@@ -30,12 +31,18 @@ cli.program {
|
|
|
|
|
|
cli.positional "path" {"Local path of folder to watch."},
|
|
|
|
|
|
- cli.flag "l,logfile" {
|
|
|
+ cli.flag "f,logfile" {
|
|
|
"Log file.",
|
|
|
type = cli.string,
|
|
|
default="/dev/stderr",
|
|
|
},
|
|
|
|
|
|
+ cli.flag "l,loglevel" {
|
|
|
+ "Log level: 1 = error, 2 = warning, 3 = info [default], 4 = debug.",
|
|
|
+ type = cli.number,
|
|
|
+ default = 3,
|
|
|
+ },
|
|
|
+
|
|
|
cli.flag "g,gen-site" {
|
|
|
"(Re-)generate the website after each submission.",
|
|
|
type = cli.boolean,
|
|
@@ -49,12 +56,24 @@ cli.program {
|
|
|
function(args)
|
|
|
local wd = watchdog.init()
|
|
|
local logfile = assert(io.open(args.logfile, "a"))
|
|
|
- logfile:write("Starting Pocket Archive watchdog on ")
|
|
|
- logfile:write(args.path, "\n")
|
|
|
+
|
|
|
+ local logger = sllog:init{
|
|
|
+ {"err", "%T %-5L ", "%n", logfile},
|
|
|
+ {"warn", "%T %-5L ", "%n", logfile},
|
|
|
+ {"info", "%T %-5L ", "%n", logfile},
|
|
|
+ {"debug", "%T %-5L%f (%S) ", "%n", logfile},
|
|
|
+ timefn=(require "socket" or {}).gettime,
|
|
|
+ report="debug",
|
|
|
+ hookrequire=false,
|
|
|
+ level=args.loglevel,
|
|
|
+ }
|
|
|
+
|
|
|
+ logger:info("Starting Pocket Archive watchdog on ")
|
|
|
+ logger:info(args.path, "\n")
|
|
|
|
|
|
wd:add(args.path, watchdog.IN_CLOSE_WRITE, function(ev)
|
|
|
- logfile:write("Created new file: ", ev.name, " mask: ", ev.mask)
|
|
|
- logfile:write("\n")
|
|
|
+ logger:info("Created new file: ", ev.name, " mask: ", ev.mask)
|
|
|
+ logger:info("\n")
|
|
|
if ev.name:find("pkar_submission.*%.csv") then
|
|
|
-- TODO spawn subprocess
|
|
|
sub.deposit(plpath.join(args.path, ev.name), args.cleanup)
|