|
@@ -6,6 +6,8 @@ local signal = require "posix.signal"
|
|
|
local sllog = require "sllog"
|
|
|
local watchdog = require "watchdog"
|
|
|
|
|
|
+local pkar = require "pocket_archive"
|
|
|
+local logger = pkar.logger
|
|
|
local sub = require "pocket_archive.submission"
|
|
|
local gen = require "pocket_archive.generator"
|
|
|
|
|
@@ -13,7 +15,7 @@ local gen = require "pocket_archive.generator"
|
|
|
local running = true
|
|
|
|
|
|
signal.signal(signal.SIGINT, function()
|
|
|
- print("\nShutting down...")
|
|
|
+ logger:info("\nShutting down Pocket Archive watchdog...\n")
|
|
|
running = false
|
|
|
end)
|
|
|
|
|
@@ -31,12 +33,14 @@ cli.program {
|
|
|
|
|
|
cli.positional "path" {"Local path of folder to watch."},
|
|
|
|
|
|
+ --[[
|
|
|
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,
|
|
@@ -55,27 +59,24 @@ cli.program {
|
|
|
|
|
|
function(args)
|
|
|
local wd = watchdog.init()
|
|
|
- local logfile = assert(io.open(args.logfile, "a"))
|
|
|
-
|
|
|
- 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")
|
|
|
+ logger:setlevel(args.loglevel or logger:getlevel())
|
|
|
+
|
|
|
+ logger:info("")
|
|
|
+ logger:info("* * * * * * * * * *")
|
|
|
+ logger:info("Starting Pocket Archive watchdog on ", args.path)
|
|
|
+ logger:info("Config file: ", pkar.config_path)
|
|
|
+ logger:info("D-Res path: ", pkar.config.fs.dres_path)
|
|
|
+ logger:info("O-Res path: ", pkar.config.fs.ores_path)
|
|
|
+ if args.gen_site then
|
|
|
+ logger:info("Generating website at: ", pkar.config.htmlgen.out_dir)
|
|
|
+ end
|
|
|
+ logger:info("* * * * * * * * * *")
|
|
|
|
|
|
wd:add(args.path, watchdog.IN_CLOSE_WRITE, function(ev)
|
|
|
logger:info("Created new file: ", ev.name, " mask: ", ev.mask)
|
|
|
logger:info("\n")
|
|
|
if ev.name:find("pkar_submission.*%.csv") then
|
|
|
- logger:info("Detected new submission file: ", ev.name)
|
|
|
+ logger:info("Detected new submission file: ", ev.name)
|
|
|
-- TODO spawn subprocess
|
|
|
sub.deposit(plpath.join(args.path, ev.name), args.cleanup)
|
|
|
if args.gen_site then gen.generate_site() end
|