diff --git a/src/utils/ConsoleManager.cpp b/src/utils/ConsoleManager.cpp index 64ba8473376a8975e5a7d23b4b50e22bfbf0ed5f..cec3cb2cbecf8d84a651f6a11268443904135251 100644 --- a/src/utils/ConsoleManager.cpp +++ b/src/utils/ConsoleManager.cpp @@ -10,25 +10,14 @@ ConsoleManager::isTerminal(std::ostream& os) } void -ConsoleManager::init(const std::string& colorize) +ConsoleManager::init(const bool& colorize) { pout() << "Console management: color "; - if (colorize == "auto") { - if (isTerminal(pout())) { - pout() << rang::style::bold << rang::fgB::green << "enabled" << rang::fg::reset << rang::style::reset; - } else { - pout() << "disabled"; - } - pout() << " [auto]\n"; - } else if (colorize == "yes") { + if (colorize) { rang::setControlMode(rang::control::Force); - pout() << rang::style::bold << rang::fgB::green << "enabled" << rang::fg::reset << rang::style::reset; - pout() << " [" << rang::style::bold << rang::fgB::red << "forced" << rang::fg::reset << rang::style::reset << "]\n"; - } else if (colorize == "no") { - rang::setControlMode(rang::control::Off); - pout() << "disabled [forced]\n"; + pout() << rang::style::bold << rang::fgB::green << "enabled" << rang::fg::reset << rang::style::reset << '\n'; } else { - perr() << "Unknown colorize option: " << colorize << '\n'; - std::exit(1); + rang::setControlMode(rang::control::Off); + pout() << "disabled\n"; } } diff --git a/src/utils/ConsoleManager.hpp b/src/utils/ConsoleManager.hpp index 61695670c01c7b85417e7f3a47b19d4c3de7ce79..8befab9f6d78aa72c25f4c768ebda530e4545096 100644 --- a/src/utils/ConsoleManager.hpp +++ b/src/utils/ConsoleManager.hpp @@ -6,7 +6,7 @@ struct ConsoleManager { static bool isTerminal(std::ostream& os); - static void init(const std::string& colorize); + static void init(const bool& colorize); }; #endif // CONSOLE_MANAGER_HPP diff --git a/src/utils/PugsUtils.cpp b/src/utils/PugsUtils.cpp index b0092006fd7bb24743abfc3629d3b123cba17e94..4e77863d328b6c448f0db2c5cbf6376e383c125a 100644 --- a/src/utils/PugsUtils.cpp +++ b/src/utils/PugsUtils.cpp @@ -21,9 +21,6 @@ initialize(int& argc, char* argv[]) { parallel::Messenger::create(argc, argv); - long unsigned number = 10; - std::string filename; - pout() << "Pugs version: " << rang::style::bold << RevisionInfo::version() << rang::style::reset << '\n'; pout() << "-------------------- " << rang::fg::green << "git info" << rang::fg::reset << " -------------------------" @@ -45,29 +42,28 @@ initialize(int& argc, char* argv[]) pout() << "kokkos: " << rang::style::bold << BuildInfo::kokkosDevices() << rang::style::reset << '\n'; pout() << "mpi: " << rang::style::bold << BuildInfo::mpiLibrary() << rang::style::reset << '\n'; pout() << "-------------------------------------------------------\n"; + + std::string filename; { CLI::App app{"Pugs help"}; - app.add_option("-n,--number", number, "Number of cells"); //->required(); - - app.add_option("filename,-f,--filename", filename, - "gmsh file"); //->required(); + app.add_option("filename,-f,--filename", filename, "gmsh file"); int threads = -1; app.add_option("--threads", threads, "Number of Kokkos threads") ->check(CLI::Range(1, std::numeric_limits<decltype(threads)>::max())); - std::string colorize = "auto"; - app.add_set("--colorize", colorize, {"auto", "yes", "no"}, "Colorize console output", true); + bool enable_color = true; + app.add_flag("--color,!--no-color", enable_color, "Colorize console output [default: true]"); + + bool enable_fpe = true; + app.add_flag("--fpe,!--no-fpe", enable_fpe, "Trap floating point exceptions [default: true]"); - bool disable_fpe = false; - app.add_flag("--no-fpe", disable_fpe, "Do not trap floating point exceptions"); - bool disable_signals = false; - app.add_flag("--no-signal", disable_signals, "Do not catches signals"); + bool enable_signals = true; + app.add_flag("--signal,!--no-signal", enable_signals, "Catches signals [default: true]"); - std::string pause_on_error = "auto"; - app.add_set("--pause-on-error", pause_on_error, {"auto", "yes", "no"}, "Pause for debugging on unexpected error", - true); + bool pause_on_error = false; + app.add_flag("-p,--pause-on-error", pause_on_error, "Pause for debugging on unexpected error [default: false]"); std::atexit([]() { pout() << rang::style::reset; }); try { @@ -78,10 +74,10 @@ initialize(int& argc, char* argv[]) std::exit(app.exit(e, pout(), perr())); } - ConsoleManager::init(colorize); - FPEManager::init(not disable_fpe); + ConsoleManager::init(enable_color); + FPEManager::init(enable_fpe); SignalManager::setPauseForDebug(pause_on_error); - SignalManager::init(not disable_signals); + SignalManager::init(enable_signals); } Kokkos::initialize(argc, argv); diff --git a/src/utils/SignalManager.cpp b/src/utils/SignalManager.cpp index 26d6ea537368187af03ba7e393517d24ca026ce3..4fc37443a27326fe7a0725f1df9ea6c501ad2fee 100644 --- a/src/utils/SignalManager.cpp +++ b/src/utils/SignalManager.cpp @@ -14,9 +14,10 @@ #include <Messenger.hpp> -std::string SignalManager::s_pause_on_error = "auto"; +bool SignalManager::s_pause_on_error = false; + void -SignalManager::setPauseForDebug(const std::string& pause_on_error) +SignalManager::setPauseForDebug(const bool& pause_on_error) { s_pause_on_error = pause_on_error; } @@ -45,7 +46,7 @@ void SignalManager::pauseForDebug(const int& signal) { if (std::string(PUGS_BUILD_TYPE) != "Release") { - if (s_pause_on_error == "yes") { + if (s_pause_on_error) { std::cerr << "\n======================================\n" << rang::style::reset << rang::fg::reset << rang::style::bold << "to attach gdb to this process run\n" << "\tgdb -pid " << rang::fg::red << getpid() << rang::fg::reset << '\n' diff --git a/src/utils/SignalManager.hpp b/src/utils/SignalManager.hpp index 3f015936880f82e209f87f7956c9f17be5e6387a..e1579f858d09d448200e40a0e5fc04ed6942afc0 100644 --- a/src/utils/SignalManager.hpp +++ b/src/utils/SignalManager.hpp @@ -6,13 +6,13 @@ struct SignalManager { private: - static std::string s_pause_on_error; + static bool s_pause_on_error; static std::string signalName(const int& signal); static void pauseForDebug(const int& signal); static void handler(int signal); public: - static void setPauseForDebug(const std::string& pause_on_error); + static void setPauseForDebug(const bool& pause_on_error); static void init(const bool& enable); };