#!/opt/lnxall_app/bin/lua local invoker = require "invoker" local g_config_file = '/etc/ubuslog.json' local g_md5_file = '/tmp/.ubuslog.md5' local function main_func() local rval = invoker.invoke(0, 'lua', '/opt/lnxall_app/bin/ubuslog-assembler.lua') if rval ~= 0 then io.stderr:write('Error, failed to assemble routes\n') io.stderr:flush() return false end local prev_md5 = invoker.readfile(g_md5_file) if type(prev_md5) ~= 'string' or #prev_md5 == 0 then io.stderr:write('Error, cannot get previos md5\n') io.stderr:flush() return false end local _, new_md5 = invoker.invoke(invoker.OUTPUT, 'md5sum', g_config_file) if type(new_md5) ~= 'string' or #new_md5 == 0 then io.stderr:write(string.format('Error, please check whether %s exists\n', g_config_file)) io.stderr:flush() return false end new_md5 = string.match(new_md5, '%S+') if not string.find(new_md5, prev_md5) then io.stdout:write('Reload ubuslog configuration . . .\n') io.stdout:flush() invoker.invoke(0, 'systemctl', 'restart', 'ubuslog.service', 'tmpubuslog.service') local fp = io.open(g_md5_file, 'wb') fp:write(new_md5) fp:close() else io.stdout:write('Configuration has not changed\n') io.stdout:flush() end return true end main_func()