diff --git a/src/common/Banner.cpp b/src/common/Banner.cpp new file mode 100644 index 000000000..5904b154e --- /dev/null +++ b/src/common/Banner.cpp @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2016+ AzerothCore , released under GNU GPL v3 license, you may redistribute it and/or modify it under version 2 of the License, or (at your option), any later version. + */ + +#include "Banner.h" +#include "GitRevision.h" +#include "StringFormat.h" + +void acore::Banner::Show(char const* applicationName, void(*log)(char const* text), void(*logExtraInfo)()) +{ + log(acore::StringFormat("%s (%s)", GitRevision::GetFullVersion(), applicationName).c_str()); + log(" to stop.\n"); + log(" █████╗ ███████╗███████╗██████╗ ██████╗ ████████╗██╗ ██╗"); + log(" ██╔══██╗╚══███╔╝██╔════╝██╔══██╗██╔═══██╗╚══██╔══╝██║ ██║"); + log(" ███████║ ███╔╝ █████╗ ██████╔╝██║ ██║ ██║ ███████║"); + log(" ██╔══██║ ███╔╝ ██╔══╝ ██╔══██╗██║ ██║ ██║ ██╔══██║"); + log(" ██║ ██║███████╗███████╗██║ ██║╚██████╔╝ ██║ ██║ ██║"); + log(" ╚═╝ ╚═╝╚══════╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝"); + log(" ██████╗ ██████╗ ██████╗ ███████╗"); + log(" ██╔════╝██╔═══██╗██╔══██╗██╔═══╝"); + log(" ██║ ██║ ██║██████╔╝█████╗"); + log(" ██║ ██║ ██║██╔══██╗██╔══╝"); + log(" ╚██████╗╚██████╔╝██║ ██║███████╗"); + log(" ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝\n"); + log(" AzerothCore 3.3.5a - www.azerothcore.org\n"); + + if (logExtraInfo) + { + logExtraInfo(); + } +} diff --git a/src/common/Banner.h b/src/common/Banner.h new file mode 100644 index 000000000..44160e0d0 --- /dev/null +++ b/src/common/Banner.h @@ -0,0 +1,18 @@ +/* + * Copyright (C) 2016+ AzerothCore , released under GNU GPL v3 license, you may redistribute it and/or modify it under version 2 of the License, or (at your option), any later version. + */ + +#ifndef AZEROTHCORE_BANNER_H +#define AZEROTHCORE_BANNER_H + +#include "Define.h" + +namespace acore +{ + namespace Banner + { + void Show(char const* applicationName, void(*log)(char const* text), void(*logExtraInfo)()); + } +} + +#endif // AZEROTHCORE_BANNER_H diff --git a/src/server/authserver/Main.cpp b/src/server/authserver/Main.cpp index cf1f4028a..bebe54bed 100644 --- a/src/server/authserver/Main.cpp +++ b/src/server/authserver/Main.cpp @@ -12,6 +12,7 @@ * authentication server */ +#include "Banner.h" #include "Common.h" #include "AppenderDB.h" #include "DatabaseEnv.h" @@ -85,25 +86,18 @@ extern int main(int argc, char** argv) sLog->RegisterAppender(); sLog->Initialize(); - LOG_INFO("server.authserver", "%s (authserver)", GitRevision::GetFullVersion()); - LOG_INFO("server.authserver", " to stop."); - LOG_INFO("server.authserver", " "); - LOG_INFO("server.authserver", " █████╗ ███████╗███████╗██████╗ ██████╗ ████████╗██╗ ██╗"); - LOG_INFO("server.authserver", " ██╔══██╗╚══███╔╝██╔════╝██╔══██╗██╔═══██╗╚══██╔══╝██║ ██║"); - LOG_INFO("server.authserver", " ███████║ ███╔╝ █████╗ ██████╔╝██║ ██║ ██║ ███████║"); - LOG_INFO("server.authserver", " ██╔══██║ ███╔╝ ██╔══╝ ██╔══██╗██║ ██║ ██║ ██╔══██║"); - LOG_INFO("server.authserver", " ██║ ██║███████╗███████╗██║ ██║╚██████╔╝ ██║ ██║ ██║"); - LOG_INFO("server.authserver", " ╚═╝ ╚═╝╚══════╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝"); - LOG_INFO("server.authserver", " ██████╗ ██████╗ ██████╗ ███████╗"); - LOG_INFO("server.authserver", " ██╔════╝██╔═══██╗██╔══██╗██╔═══╝"); - LOG_INFO("server.authserver", " ██║ ██║ ██║██████╔╝█████╗"); - LOG_INFO("server.authserver", " ██║ ██║ ██║██╔══██╗██╔══╝"); - LOG_INFO("server.authserver", " ╚██████╗╚██████╔╝██║ ██║███████╗"); - LOG_INFO("server.authserver", " ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝\n"); - LOG_INFO("server.authserver", " AzerothCore 3.3.5a - www.azerothcore.org"); - LOG_INFO("server.authserver", " "); - LOG_INFO("server.authserver", "Using configuration file %s.", configFile.c_str()); - LOG_INFO("server.authserver", "%s (Library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION)); + acore::Banner::Show("authserver", + [](char const* text) + { + LOG_INFO("server.authserver", "%s", text); + }, + []() + { + LOG_INFO("server.authserver", "> Using configuration file %s.", sConfigMgr->GetFilename().c_str()); + LOG_INFO("server.authserver", "> Using SSL version: %s (library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION)); + LOG_INFO("server.authserver", "> Using ACE version: %s", ACE_VERSION); + } + ); #if defined (ACE_HAS_EVENT_POLL) || defined (ACE_HAS_DEV_POLL) ACE_Reactor::instance(new ACE_Reactor(new ACE_Dev_Poll_Reactor(ACE::max_handles(), 1), 1), true); diff --git a/src/server/worldserver/Main.cpp b/src/server/worldserver/Main.cpp index fbb1dce3a..f29598a8c 100644 --- a/src/server/worldserver/Main.cpp +++ b/src/server/worldserver/Main.cpp @@ -9,6 +9,7 @@ /// \file #include "AppenderDB.h" +#include "Banner.h" #include "Common.h" #include "Configuration/Config.h" #include "Database/DatabaseEnv.h" @@ -122,9 +123,18 @@ extern int main(int argc, char** argv) sLog->RegisterAppender(); sLog->Initialize(); - LOG_INFO("server.worldserver", "Using configuration file %s.", configFile.c_str()); - LOG_INFO("server.worldserver", "Using SSL version: %s (library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION)); - LOG_INFO("server.worldserver", "Using ACE version: %s", ACE_VERSION); + acore::Banner::Show("worldserver-daemon", + [](char const* text) + { + LOG_INFO("server.worldserver", "%s", text); + }, + []() + { + LOG_INFO("server.worldserver", "> Using configuration file %s.", sConfigMgr->GetFilename().c_str()); + LOG_INFO("server.worldserver", "> Using SSL version: %s (library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION)); + LOG_INFO("server.worldserver", "> Using ACE version: %s", ACE_VERSION); + } + ); ///- and run the 'Master' /// @todo Why do we need this 'Master'? Can't all of this be in the Main as for Realmd? diff --git a/src/server/worldserver/Master.cpp b/src/server/worldserver/Master.cpp index 2270f1c17..5156d3892 100644 --- a/src/server/worldserver/Master.cpp +++ b/src/server/worldserver/Master.cpp @@ -112,24 +112,6 @@ int Master::Run() BigNumber seed1; seed1.SetRand(16 * 8); - LOG_INFO("server", "%s (worldserver-daemon)", GitRevision::GetFullVersion()); - LOG_INFO("server", " to stop.\n"); - - LOG_INFO("server", " █████╗ ███████╗███████╗██████╗ ██████╗ ████████╗██╗ ██╗"); - LOG_INFO("server", " ██╔══██╗╚══███╔╝██╔════╝██╔══██╗██╔═══██╗╚══██╔══╝██║ ██║"); - LOG_INFO("server", " ███████║ ███╔╝ █████╗ ██████╔╝██║ ██║ ██║ ███████║"); - LOG_INFO("server", " ██╔══██║ ███╔╝ ██╔══╝ ██╔══██╗██║ ██║ ██║ ██╔══██║"); - LOG_INFO("server", " ██║ ██║███████╗███████╗██║ ██║╚██████╔╝ ██║ ██║ ██║"); - LOG_INFO("server", " ╚═╝ ╚═╝╚══════╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝"); - LOG_INFO("server", " ██████╗ ██████╗ ██████╗ ███████╗"); - LOG_INFO("server", " ██╔════╝██╔═══██╗██╔══██╗██╔═══╝"); - LOG_INFO("server", " ██║ ██║ ██║██████╔╝█████╗"); - LOG_INFO("server", " ██║ ██║ ██║██╔══██╗██╔══╝"); - LOG_INFO("server", " ╚██████╗╚██████╔╝██║ ██║███████╗"); - LOG_INFO("server", " ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝\n"); - - LOG_INFO("server", " AzerothCore 3.3.5a - www.azerothcore.org\n"); - /// worldserver PID file creation std::string pidFile = sConfigMgr->GetOption("PidFile", ""); if (!pidFile.empty())