diff --git a/arangosh/Benchmark/arangob.cpp b/arangosh/Benchmark/arangob.cpp index fdfd5cfd95..0db3d0a97b 100644 --- a/arangosh/Benchmark/arangob.cpp +++ b/arangosh/Benchmark/arangob.cpp @@ -28,22 +28,17 @@ #include "ApplicationFeatures/LoggerFeature.h" #include "ApplicationFeatures/ShutdownFeature.h" #include "ApplicationFeatures/TempFeature.h" +#include "Basics/ArangoGlobalContext.h" #include "Benchmark/BenchFeature.h" #include "ProgramOptions2/ProgramOptions.h" -#include "Rest/InitializeRest.h" using namespace arangodb; using namespace arangodb::application_features; using namespace arangodb::basics; using namespace arangodb::rest; -//////////////////////////////////////////////////////////////////////////////// -/// @brief main -//////////////////////////////////////////////////////////////////////////////// - int main(int argc, char* argv[]) { - ADB_WindowsEntryFunction(); - TRIAGENS_REST_INITIALIZE(); + ArangoGlobalContext context(argc, argv); std::shared_ptr options(new options::ProgramOptions( argv[0], "Usage: arangob []", "For more information use:")); @@ -61,8 +56,5 @@ int main(int argc, char* argv[]) { server.run(argc, argv); - TRIAGENS_REST_SHUTDOWN; - ADB_WindowsExitFunction(ret, nullptr); - - return ret; + return context.exit(ret); } diff --git a/arangosh/Dump/arangodump.cpp b/arangosh/Dump/arangodump.cpp index a8a3227d9f..3bb093ac73 100644 --- a/arangosh/Dump/arangodump.cpp +++ b/arangosh/Dump/arangodump.cpp @@ -27,20 +27,15 @@ #include "ApplicationFeatures/ConfigFeature.h" #include "ApplicationFeatures/LoggerFeature.h" #include "ApplicationFeatures/ShutdownFeature.h" +#include "Basics/ArangoGlobalContext.h" #include "Dump/DumpFeature.h" #include "ProgramOptions2/ProgramOptions.h" -#include "Rest/InitializeRest.h" using namespace arangodb; using namespace arangodb::application_features; -//////////////////////////////////////////////////////////////////////////////// -/// @brief main -//////////////////////////////////////////////////////////////////////////////// - int main(int argc, char* argv[]) { - ADB_WindowsEntryFunction(); - TRIAGENS_REST_INITIALIZE(); + ArangoGlobalContext context(argc, argv); std::shared_ptr options(new options::ProgramOptions( argv[0], "Usage: arangodump []", "For more information use:")); @@ -57,8 +52,5 @@ int main(int argc, char* argv[]) { server.run(argc, argv); - TRIAGENS_REST_SHUTDOWN; - ADB_WindowsExitFunction(ret, nullptr); - - return ret; + return context.exit(ret); } diff --git a/arangosh/Import/arangoimp.cpp b/arangosh/Import/arangoimp.cpp index d3bb7f55e7..a3de4e586f 100644 --- a/arangosh/Import/arangoimp.cpp +++ b/arangosh/Import/arangoimp.cpp @@ -28,20 +28,15 @@ #include "ApplicationFeatures/LoggerFeature.h" #include "ApplicationFeatures/ShutdownFeature.h" #include "ApplicationFeatures/TempFeature.h" +#include "Basics/ArangoGlobalContext.h" #include "Import/ImportFeature.h" #include "ProgramOptions2/ProgramOptions.h" -#include "Rest/InitializeRest.h" using namespace arangodb; using namespace arangodb::application_features; -//////////////////////////////////////////////////////////////////////////////// -/// @brief main -//////////////////////////////////////////////////////////////////////////////// - int main(int argc, char* argv[]) { - ADB_WindowsEntryFunction(); - TRIAGENS_REST_INITIALIZE(); + ArangoGlobalContext context(argc, argv); std::shared_ptr options(new options::ProgramOptions( argv[0], "Usage: arangoimp []", "For more information use:")); @@ -59,8 +54,5 @@ int main(int argc, char* argv[]) { server.run(argc, argv); - TRIAGENS_REST_SHUTDOWN; - ADB_WindowsExitFunction(ret, nullptr); - - return ret; + return context.exit(ret); } diff --git a/arangosh/Restore/arangorestore.cpp b/arangosh/Restore/arangorestore.cpp index 099363ee6f..e5c7899ac0 100644 --- a/arangosh/Restore/arangorestore.cpp +++ b/arangosh/Restore/arangorestore.cpp @@ -28,20 +28,15 @@ #include "ApplicationFeatures/LoggerFeature.h" #include "ApplicationFeatures/ShutdownFeature.h" #include "ApplicationFeatures/TempFeature.h" +#include "Basics/ArangoGlobalContext.h" #include "Restore/RestoreFeature.h" #include "ProgramOptions2/ProgramOptions.h" -#include "Rest/InitializeRest.h" using namespace arangodb; using namespace arangodb::application_features; -//////////////////////////////////////////////////////////////////////////////// -/// @brief main -//////////////////////////////////////////////////////////////////////////////// - int main(int argc, char* argv[]) { - ADB_WindowsEntryFunction(); - TRIAGENS_REST_INITIALIZE(); + ArangoGlobalContext context(argc, argv); std::shared_ptr options(new options::ProgramOptions( argv[0], "Usage: arangorestore []", "For more information use:")); @@ -59,8 +54,5 @@ int main(int argc, char* argv[]) { server.run(argc, argv); - TRIAGENS_REST_SHUTDOWN; - ADB_WindowsExitFunction(ret, nullptr); - - return ret; + return context.exit(ret); } diff --git a/arangosh/Shell/arangosh.cpp b/arangosh/Shell/arangosh.cpp index d30eae7776..bf57b0ad9a 100644 --- a/arangosh/Shell/arangosh.cpp +++ b/arangosh/Shell/arangosh.cpp @@ -31,24 +31,18 @@ #include "ApplicationFeatures/ShutdownFeature.h" #include "ApplicationFeatures/TempFeature.h" #include "ApplicationFeatures/V8PlatformFeature.h" -#include "Basics/files.h" +#include "Basics/ArangoGlobalContext.h" #include "ProgramOptions2/ProgramOptions.h" -#include "Rest/InitializeRest.h" #include "Shell/ShellFeature.h" #include "Shell/V8ShellFeature.h" using namespace arangodb; using namespace arangodb::application_features; -//////////////////////////////////////////////////////////////////////////////// -/// @brief main -//////////////////////////////////////////////////////////////////////////////// - int main(int argc, char* argv[]) { - ADB_WindowsEntryFunction(); - TRIAGENS_REST_INITIALIZE(); + ArangoGlobalContext context(argc, argv); - std::string name = TRI_BinaryName(argv[0]); + std::string name = context.binaryName(); std::shared_ptr options(new options::ProgramOptions( argv[0], "Usage: " + name + " []", "For more information use:")); @@ -70,8 +64,5 @@ int main(int argc, char* argv[]) { server.run(argc, argv); - TRIAGENS_REST_SHUTDOWN; - ADB_WindowsExitFunction(ret, nullptr); - - return ret; + return context.exit(ret); }