mirror of
https://github.com/davidallendj/gdpm.git
synced 2025-12-20 03:27:02 -07:00
Fixed minor issues
- Fixed error message formatting - Fixed setting verbosity levels - Fixed implementation of `replace_first` and `replace_all` - Fixed issue where installing a package would failed because of unescaped single quotes in SQL statement - Fixed error code returned from SQLITE related errors - Fixed verbose flag not being repeatable and set correctly - Fixed some error messages to correctly reflect occuring error - Fixed the prompt asking the user twice and not taking a default input - Added functions to get logging default prefixes - Added `version` command (not implemented yet)
This commit is contained in:
parent
02a4e879a8
commit
c88cb08e03
9 changed files with 126 additions and 121 deletions
|
|
@ -93,18 +93,17 @@ namespace gdpm{
|
|||
namespace log {
|
||||
static constexpr void error(const gdpm::error& e){
|
||||
#if GDPM_LOG_LEVEL > ERROR
|
||||
set_prefix_if(std::format("[ERROR {}] ", utils::timestamp()), true);
|
||||
set_suffix_if("\n");
|
||||
vlog(
|
||||
fmt::format(GDPM_COLOR_LOG_ERROR "[ERROR {}] {}\n" GDPM_COLOR_LOG_RESET, utils::timestamp(), e.get_message()),
|
||||
fmt::make_format_args("" /*e.get_message()*/)
|
||||
fmt::format(GDPM_COLOR_LOG_ERROR "{}{}\n" GDPM_COLOR_LOG_RESET, prefix.contents, e.get_message()),
|
||||
fmt::make_format_args(prefix.contents, e.get_message())
|
||||
);
|
||||
#endif
|
||||
}
|
||||
|
||||
template <typename S, typename...Args>
|
||||
static constexpr void error(const S& prefix, const gdpm::error& e){
|
||||
vlog(
|
||||
fmt::format(GDPM_COLOR_LOG_ERROR + prefix + GDPM_COLOR_LOG_RESET, e.get_message())
|
||||
);
|
||||
static void error(const char *p, const gdpm::error& e){
|
||||
println("{}{}{}", p, prefix.contents, e.get_message());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,10 +25,10 @@ namespace gdpm::log
|
|||
|
||||
enum level_e : int{
|
||||
NONE = 0,
|
||||
INFO = 1,
|
||||
WARNING = 2,
|
||||
ERROR = 1,
|
||||
INFO = 2,
|
||||
DEBUG = 3,
|
||||
ERROR = 4
|
||||
WARNING = 4,
|
||||
};
|
||||
|
||||
enum flag_opt {
|
||||
|
|
@ -36,11 +36,17 @@ namespace gdpm::log
|
|||
PRINT_STDERR = 0b00000010
|
||||
};
|
||||
|
||||
static int level = INFO;
|
||||
static string prefix = "";
|
||||
static string suffix = "";
|
||||
static string path = "";
|
||||
static std::bitset<8> flags = PRINT_STDOUT | PRINT_STDERR;
|
||||
struct prefix {
|
||||
string contents = "";
|
||||
string enclosing_start = "]";
|
||||
string enclosing_end = "[";
|
||||
};
|
||||
|
||||
static int level = INFO;
|
||||
static prefix prefix = {};
|
||||
static string suffix = "";
|
||||
static string path = "";
|
||||
static std::bitset<8> flags = PRINT_STDOUT | PRINT_STDERR;
|
||||
static bool print_to_stdout;
|
||||
static bool print_to_stderr;
|
||||
|
||||
|
|
@ -60,14 +66,18 @@ namespace gdpm::log
|
|||
return flags.test(flag);
|
||||
}
|
||||
|
||||
inline constexpr void set_prefix_if(const std::string& v, bool predicate = !prefix.empty()){
|
||||
prefix = (predicate) ? v : prefix;
|
||||
inline constexpr void set_prefix_if(const std::string& v, bool predicate = prefix.contents.empty()){
|
||||
prefix.contents = (predicate) ? v : prefix.contents;
|
||||
}
|
||||
|
||||
inline constexpr void set_suffix_if(const std::string& v, bool predicate = !suffix.empty()){
|
||||
inline constexpr void set_suffix_if(const std::string& v, bool predicate = suffix.empty()){
|
||||
suffix = (predicate) ? v : suffix;
|
||||
}
|
||||
|
||||
inline constexpr const char* get_info_prefix() { return "[INFO {}] "; }
|
||||
inline constexpr const char* get_error_prefix() { return "[ERROR {}] "; }
|
||||
inline constexpr const char* get_debug_prefix() { return "[DEBUG {}] "; }
|
||||
|
||||
static void vlog(fmt::string_view format, fmt::format_args args){
|
||||
fmt::vprint(format, args);
|
||||
}
|
||||
|
|
@ -81,10 +91,10 @@ namespace gdpm::log
|
|||
if(log::level < to_int(log::INFO))
|
||||
return;
|
||||
#if GDPM_LOG_LEVEL > NONE
|
||||
set_prefix_if(fmt::format("[INFO {}] ", utils::timestamp()));
|
||||
set_prefix_if(fmt::format( get_info_prefix(), utils::timestamp()), true);
|
||||
set_suffix_if("\n");
|
||||
vlog(
|
||||
fmt::format(GDPM_COLOR_LOG_INFO "{}{}{}" GDPM_COLOR_LOG_RESET, prefix, format, suffix),
|
||||
fmt::format(GDPM_COLOR_LOG_INFO "{}{}{}" GDPM_COLOR_LOG_RESET, prefix.contents, format, suffix),
|
||||
fmt::make_format_args(args...)
|
||||
);
|
||||
#endif
|
||||
|
|
@ -95,10 +105,10 @@ namespace gdpm::log
|
|||
if(log::level < to_int(log::INFO))
|
||||
return;
|
||||
#if GDPM_LOG_LEVEL > INFO
|
||||
set_prefix_if(fmt::format("[INFO {}] ", utils::timestamp()));
|
||||
set_suffix_if("");
|
||||
set_prefix_if(fmt::format(get_info_prefix(), utils::timestamp()), true);
|
||||
set_suffix_if("", true);
|
||||
vlog(
|
||||
fmt::format(GDPM_COLOR_LOG_INFO "{}{}{}" GDPM_COLOR_LOG_RESET, prefix, format, suffix),
|
||||
fmt::format(GDPM_COLOR_LOG_INFO "{}{}{}" GDPM_COLOR_LOG_RESET, prefix.contents, format, suffix),
|
||||
fmt::make_format_args(args...)
|
||||
);
|
||||
#endif
|
||||
|
|
@ -109,10 +119,10 @@ namespace gdpm::log
|
|||
if(log::level < to_int(log::ERROR))
|
||||
return;
|
||||
#if GDPM_LOG_LEVEL > ERROR
|
||||
set_prefix_if(std::format("[ERROR {}] ", utils::timestamp()));
|
||||
set_prefix_if(std::format(get_error_prefix(), utils::timestamp()), true);
|
||||
set_suffix_if("\n");
|
||||
vlog(
|
||||
fmt::format(GDPM_COLOR_LOG_ERROR "{}{}{}" GDPM_COLOR_LOG_RESET, prefix, format, suffix),
|
||||
fmt::format(GDPM_COLOR_LOG_ERROR "{}{}{}" GDPM_COLOR_LOG_RESET, prefix.contents, format, suffix),
|
||||
fmt::make_format_args(args...)
|
||||
);
|
||||
#endif
|
||||
|
|
@ -123,10 +133,10 @@ namespace gdpm::log
|
|||
if(log::level < to_int(log::DEBUG))
|
||||
return;
|
||||
#if GDPM_LOG_LEVEL > DEBUG
|
||||
set_prefix_if(std::format("[DEBUG {}] ", utils::timestamp()));
|
||||
set_prefix_if(std::format(get_debug_prefix(), utils::timestamp()), true);
|
||||
set_suffix_if("\n");
|
||||
vlog(
|
||||
fmt::format(GDPM_COLOR_LOG_DEBUG "{}{}{}" GDPM_COLOR_LOG_RESET, prefix, format, suffix),
|
||||
fmt::format(GDPM_COLOR_LOG_DEBUG "{}{}{}" GDPM_COLOR_LOG_RESET, prefix.contents, format, suffix),
|
||||
fmt::make_format_args(args...)
|
||||
);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ namespace gdpm::package_manager {
|
|||
remote_list,
|
||||
ui,
|
||||
help,
|
||||
version,
|
||||
none
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -103,8 +103,8 @@ namespace gdpm::utils {
|
|||
std::string trim_right(const std::string& s);
|
||||
std::string trim_right(const std::string& s, const std::string& ref);
|
||||
std::vector<std::string> parse_lines(const std::string& s);
|
||||
std::string replace_first(std::string& s, const std::string& from, const std::string& to);
|
||||
std::string replace_all(std::string& s, const std::string& from, const std::string& to);
|
||||
std::string replace_first(const std::string& s, const std::string& from, const std::string& to);
|
||||
std::string replace_all(const std::string& s, const std::string& from, const std::string& to);
|
||||
int extract_zip(const char *archive, const char *dest, int verbose = 0);
|
||||
std::string prompt_user(const char *message);
|
||||
bool prompt_user_yn(const char *message);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue