diff --git a/tkserv.cc b/tkserv.cc index 7385247..a79f637 100644 --- a/tkserv.cc +++ b/tkserv.cc @@ -18,6 +18,7 @@ #include "thingpool.hh" #include "sws.hh" #include "search.hh" +#include using namespace std; void addTkUserManagement(SimpleWebSystem& sws, const std::string& mailserver, @@ -397,8 +398,13 @@ int main(int argc, char** argv) argparse::ArgumentParser args("tkserv", "0.0"); + args.add_argument("port").help("Port number to use").default_value(8089); + args.add_argument("root").help("Directory containing static assets").default_value("./html/"); args.add_argument("--rnd-admin-password").help("Create admin user if necessary, and set a random password").default_value(string("")); - args.add_argument("--insecure-cookie").help("Use an insecure cookie, for non-https operations").default_value(string("")); + args.add_argument("--smtp-server").help("IP address or address:port of SMTP smart host").default_value("10.0.0.2"); + args.add_argument("--sender-email").help("From address of email we send").default_value("opentk@hubertnet.nl"); + args.add_argument("--base-url").help("URL of this instance without trailing slash, for use in email").default_value("https://berthub.eu/tkconv"); + args.add_argument("--dev").help("Increase SQLite log verbosity").flag(); try { args.parse_args(argc, argv); } @@ -407,7 +413,12 @@ int main(int argc, char** argv) std::exit(1); } - + if (args["--dev"] == true) { + sqlite3_config(SQLITE_CONFIG_LOG, +[](void *, int iErrCode, const char *zMsg) { + std::cout << "SQLite: " << zMsg << " (" << iErrCode << ")" << std::endl; + }, nullptr); + } + ThingPool tp("tk.sqlite3", SQLWFlag::ReadOnly); tp.setInit([](SQLiteWriter& sqlw) { sqlw.query("ATTACH DATABASE 'oo.sqlite3' as oo"); @@ -436,8 +447,7 @@ int main(int argc, char** argv) sws.d_svr.set_keep_alive_max_count(1); sws.d_svr.set_keep_alive_timeout(1); sws.standardFunctions(); - addTkUserManagement(sws, "10.0.0.2", "opentk@hubertnet.nl", "https://berthub.eu/tkconv"); - // addTkUserManagement(sws, "10.0.0.2", "opentk@hubertnet.nl", "http://127.0.0.1:8089"); + addTkUserManagement(sws, args.get("--smtp-server"), args.get("--sender-email"), args.get("--base-url")); if(args.is_used("--rnd-admin-password")) { @@ -2441,13 +2451,9 @@ int main(int argc, char** argv) sws.d_svr.set_payload_max_length(1024 * 1024); // 1MB - string root = "./html/"; - if(argc > 2) - root = argv[2]; + string root = args.get("root"); sws.d_svr.set_mount_point("/", root); - int port = 8089; - if(argc > 1) - port = atoi(argv[1]); + int port = args.get("port"); fmt::print("Listening on port {} serving html from {}, using {} threads\n", port, root, CPPHTTPLIB_THREAD_POOL_COUNT);