blob: 19a6848f5c5d71400a28684548d522e514942496 [file] [log] [blame]
socket = require "socket"
local civet = {}
-- default params
civet.port=12345
civet.max_retry=100
civet.start_delay=0.1
function civet.start(docroot)
-- TODO: use a property
docroot = docroot or 'ci/test/01_basic/docroot'
assert(io.popen('./civetweb'
.. " -listening_ports " .. civet.port
.. " -document_root " .. docroot
.. " > /dev/null 2>&1 &"
))
-- wait until the server answers
for i=1,civet.max_retry do
local s = socket.connect('127.0.0.1', civet.port)
if s then
s:close()
break
end
socket.select(nil, nil, civet.start_delay) -- sleep
end
end
function civet.stop()
os.execute('killall civetweb')
-- wait until the server port closes
for i=1,civet.max_retry do
local s = socket.connect('127.0.0.1', civet.port)
if not s then
break
end
s:close()
socket.select(nil, nil, civet.start_delay) -- sleep
end
end
return civet