Fix cast from const by accessing string data directly (#8354)
[oweals/minetest.git] / src / main.cpp
index 005e1acc74ed831431618d5572f48cf70d7540b8..e4e47b1ac6ab4245c79bd7f56f18c865257e7f25 100644 (file)
@@ -25,7 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "server.h"
 #include "filesys.h"
 #include "version.h"
-#include "game.h"
+#include "client/game.h"
 #include "defaultsettings.h"
 #include "gettext.h"
 #include "log.h"
@@ -289,6 +289,8 @@ static void set_allowed_options(OptionList *allowed_options)
                        _("Migrate from current map backend to another (Only works when using minetestserver or with --server)"))));
        allowed_options->insert(std::make_pair("migrate-players", ValueSpec(VALUETYPE_STRING,
                _("Migrate from current players backend to another (Only works when using minetestserver or with --server)"))));
+       allowed_options->insert(std::make_pair("migrate-auth", ValueSpec(VALUETYPE_STRING,
+               _("Migrate from current auth backend to another (Only works when using minetestserver or with --server)"))));
        allowed_options->insert(std::make_pair("terminal", ValueSpec(VALUETYPE_FLAG,
                        _("Feature an interactive terminal (Only works when using minetestserver or with --server)"))));
 #ifndef SERVER
@@ -306,6 +308,8 @@ static void set_allowed_options(OptionList *allowed_options)
                        _("Set player name"))));
        allowed_options->insert(std::make_pair("password", ValueSpec(VALUETYPE_STRING,
                        _("Set password"))));
+       allowed_options->insert(std::make_pair("password-file", ValueSpec(VALUETYPE_STRING,
+                       _("Set password from contents of file"))));
        allowed_options->insert(std::make_pair("go", ValueSpec(VALUETYPE_FLAG,
                        _("Disable main menu"))));
        allowed_options->insert(std::make_pair("console", ValueSpec(VALUETYPE_FLAG,
@@ -403,14 +407,25 @@ static void setup_log_params(const Settings &cmd_args)
        }
 
        // Coloured log messages (see log.h)
+       std::string color_mode;
        if (cmd_args.exists("color")) {
-               std::string mode = cmd_args.get("color");
-               if (mode == "auto")
+               color_mode = cmd_args.get("color");
+#if !defined(_WIN32)
+       } else {
+               char *color_mode_env = getenv("MT_LOGCOLOR");
+               if (color_mode_env)
+                       color_mode = color_mode_env;
+#endif
+       }
+       if (color_mode != "") {
+               if (color_mode == "auto")
                        Logger::color_mode = LOG_COLOR_AUTO;
-               else if (mode == "always")
+               else if (color_mode == "always")
                        Logger::color_mode = LOG_COLOR_ALWAYS;
-               else
+               else if (color_mode == "never")
                        Logger::color_mode = LOG_COLOR_NEVER;
+               else
+                       errorstream << "Invalid color mode: " << color_mode << std::endl;
        }
 
        // If trace is enabled, enable logging of certain things
@@ -530,11 +545,8 @@ static bool read_config_file(const Settings &cmd_args)
 
 static void init_log_streams(const Settings &cmd_args)
 {
-#if RUN_IN_PLACE
-       std::string log_filename = DEBUGFILE;
-#else
        std::string log_filename = porting::path_user + DIR_DELIM + DEBUGFILE;
-#endif
+
        if (cmd_args.exists("logfile"))
                log_filename = cmd_args.get("logfile");
 
@@ -840,6 +852,9 @@ static bool run_dedicated_server(const GameParams &game_params, const Settings &
        if (cmd_args.exists("migrate-players"))
                return ServerEnvironment::migratePlayersDatabase(game_params, cmd_args);
 
+       if (cmd_args.exists("migrate-auth"))
+               return ServerEnvironment::migrateAuthDatabase(game_params, cmd_args);
+
        if (cmd_args.exists("terminal")) {
 #if USE_CURSES
                bool name_ok = true;