#include #include #include #include "honeysuckle.h" #include "options.h" #include "bindings.h" #include "logging.h" struct settings { const char *template_dir; }; int main(int argc, char **argv) { argent_log(DEBUG, "parse command-line options"); struct argent_options opts; int error = parse_options(&opts, argc, argv); if (error) return 1; argent_log(INFO, "log level: %s", level_string(argent_log_level)); argent_log(INFO, "configuration file: %s", opts.conf_filename); argent_log(INFO, "output directory: %s", opts.output_dir); argent_log(DEBUG, "create lua state"); lua_State *L = luaL_newstate(); luaL_openlibs(L); argent_log(DEBUG, "create argent table"); hs_create_table (L, hs_str_cfunc("markdown", markdown), hs_str_cfunc("scanDirectory", scan_directory), hs_str_cfunc("createDirectory", create_directory), hs_str_cfunc("copyFile", copy_file) ); lua_setglobal(L, "argent"); argent_log(DEBUG, "load configuration file"); error = luaL_loadfile(L, opts.conf_filename); if (error != 0) { argent_log(FATAL, "lua error: %s", lua_tostring(L, -1)); lua_close(L); return error; } argent_log(DEBUG, "run configuration file"); error = hs_call(L, 0, 1); if (error != 0) { argent_log(FATAL, "lua error: %s", lua_tostring(L, -1)); lua_close(L); return error; } argent_log(DEBUG, "close lua state"); lua_close(L); return 0; }