56 lines
1.9 KiB
C++
56 lines
1.9 KiB
C++
|
#include <engine_engine_number_9/baza_throw.h>
|
||
|
#include <engine_engine_number_9/running_mainloop.h>
|
||
|
#include <engine_engine_number_9/http_structures/response_gen.h>
|
||
|
#include <signal.h>
|
||
|
#include <engine_engine_number_9/connecting_assets/static_asset_manager.h>
|
||
|
#include <assert.h>
|
||
|
|
||
|
bool termination = false;
|
||
|
|
||
|
void sigterm_action(int ) {
|
||
|
termination = true;
|
||
|
}
|
||
|
|
||
|
int main(int argc, char** argv){
|
||
|
een9_ASSERT_pl(argc > 0);
|
||
|
if (argc < 1 + 2) {
|
||
|
printf("Usage: %s <file with settings> <assets folder>\n", argv[0]);
|
||
|
exit(1);
|
||
|
}
|
||
|
// if ()
|
||
|
if (!een9::isDirectory(argv[2])) {
|
||
|
printf("\"%s\" is not a directory\n", argv[2]);
|
||
|
}
|
||
|
std::string assets_dir = argv[2];
|
||
|
|
||
|
een9::StaticAssetManagerSlaveModule samI;
|
||
|
samI.update({
|
||
|
een9::StaticAssetManagerRule{assets_dir + "/html", "/assets/html", {{".html", "text/html"}} },
|
||
|
een9::StaticAssetManagerRule{assets_dir + "/css", "/assets/css", {{".css", "text/css"}} },
|
||
|
een9::StaticAssetManagerRule{assets_dir + "/js", "/assets/js", {{".js", "text/js"}} },
|
||
|
});
|
||
|
|
||
|
een9::MainloopParameters params;
|
||
|
params.guest_core = [&samI](const een9::SlaveTask& task, const een9::ClientRequest& req) -> std::string {
|
||
|
een9::StaticAsset sa;
|
||
|
int ret;
|
||
|
ret = samI.get_asset(req.url, sa);
|
||
|
if (ret >= 0) {
|
||
|
return een9::form_http_server_response_200(sa.type, sa.content);
|
||
|
}
|
||
|
if (req.url == "/" || req.url == "/index.html") {
|
||
|
ret = samI.get_asset("/assets/html/test.html", sa);
|
||
|
een9_ASSERT_pl(ret == 0);
|
||
|
return een9::form_http_server_response_200(sa.type, sa.content);
|
||
|
}
|
||
|
return een9::form_http_server_response_404("text/html", "<h1> Not found! </h1>");
|
||
|
};
|
||
|
params.ports_to_listen = {1025};
|
||
|
params.slave_number = 8;
|
||
|
params.open_admin_listener = false;
|
||
|
|
||
|
signal(SIGINT, sigterm_action);
|
||
|
|
||
|
een9::safe_electric_boogaloo(params, termination);
|
||
|
return 0;
|
||
|
}
|