52 lines
1.2 KiB
Lua
52 lines
1.2 KiB
Lua
local _ENV = mkmodule('plugins.autonestbox')
|
|
|
|
local argparse = require('argparse')
|
|
|
|
local function is_int(val)
|
|
return val and val == math.floor(val)
|
|
end
|
|
|
|
local function is_positive_int(val)
|
|
return is_int(val) and val > 0
|
|
end
|
|
|
|
local function process_args(opts, args)
|
|
if args[1] == 'help' then
|
|
opts.help = true
|
|
return
|
|
end
|
|
|
|
return argparse.processArgsGetopt(args, {
|
|
{'h', 'help', handler=function() opts.help = true end},
|
|
})
|
|
end
|
|
|
|
function parse_commandline(opts, ...)
|
|
local positionals = process_args(opts, {...})
|
|
|
|
if opts.help then return end
|
|
|
|
local in_ticks = false
|
|
for _,arg in ipairs(positionals) do
|
|
if in_ticks then
|
|
arg = tonumber(arg)
|
|
if not is_positive_int(arg) then
|
|
qerror('number of ticks must be a positive integer: ' .. arg)
|
|
else
|
|
opts.ticks = arg
|
|
end
|
|
in_ticks = false
|
|
elseif arg == 'ticks' then
|
|
in_ticks = true
|
|
elseif arg == 'now' then
|
|
opts.now = true
|
|
end
|
|
end
|
|
|
|
if in_ticks then
|
|
qerror('missing number of ticks')
|
|
end
|
|
end
|
|
|
|
return _ENV
|