2016-10-25 12:14:27 +00:00
|
|
|
#include "Server.h"
|
|
|
|
#include "LocalServer.h"
|
|
|
|
#include <common/ApplicationServerExt.h>
|
2016-10-30 18:02:56 +00:00
|
|
|
#include <DB/Common/StringUtils.h>
|
2016-10-25 12:14:27 +00:00
|
|
|
|
|
|
|
/// Universal executable for various clickhouse application
|
|
|
|
|
|
|
|
YANDEX_APP_SERVER_MAIN_FUNC(DB::Server, main_clickhouse_server);
|
|
|
|
YANDEX_APP_MAIN_FUNC(DB::LocalServer, main_clickhouse_local);
|
|
|
|
|
|
|
|
int main (int argc_, char * argv_[])
|
|
|
|
{
|
2016-10-28 17:38:32 +00:00
|
|
|
std::vector<char *> argv(argv_, argv_ + argc_);
|
|
|
|
auto main_func = main_clickhouse_server;
|
2016-10-25 12:14:27 +00:00
|
|
|
|
2016-10-30 18:02:56 +00:00
|
|
|
/// Use local mode if app is run through symbolic link with name clickhouse-local
|
|
|
|
if (!strcmp(argv[0], "clickhouse-local") || endsWith(argv[0], "/clickhouse-local"))
|
|
|
|
main_func = main_clickhouse_local;
|
|
|
|
|
|
|
|
/// Use local mode if --local-mode arg is passed (the arg should be quietly removed)
|
|
|
|
auto it_mode_local = std::find_if(argv.begin(), argv.end(), [](char * arg) { return !strcmp(arg, "--mode-local"); } );
|
2016-10-28 17:38:32 +00:00
|
|
|
if (it_mode_local != argv.end())
|
2016-10-25 12:14:27 +00:00
|
|
|
{
|
2016-10-28 17:38:32 +00:00
|
|
|
argv.erase(it_mode_local);
|
|
|
|
main_func = main_clickhouse_local;
|
2016-10-25 12:14:27 +00:00
|
|
|
}
|
2016-10-28 17:38:32 +00:00
|
|
|
|
|
|
|
return main_func(static_cast<int>(argv.size()), argv.data());
|
2016-10-25 12:14:27 +00:00
|
|
|
}
|