aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2023-10-31 12:01:51 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2023-10-31 12:01:51 -0400
commitdafe7639674f3bfc66d3a116ec836c269c08f473 (patch)
treec6db769c5e0f71c476521353c95ec94df8b05530
parentfb8045411a2e594be39cf45f613cd8cef4a3ed7f (diff)
downloadstasis-dafe7639674f3bfc66d3a116ec836c269c08f473.tar.gz
msg() function is now type void
* Add debug_shell() function to interactively examine the runtime environment
-rw-r--r--include/utils.h6
-rw-r--r--src/utils.c11
2 files changed, 14 insertions, 3 deletions
diff --git a/include/utils.h b/include/utils.h
index eb7604c..cdf4b4e 100644
--- a/include/utils.h
+++ b/include/utils.h
@@ -13,10 +13,12 @@
#define PATH_ENV_VAR "path"
#define DIR_SEP "\\"
#define PATH_SEP ";"
+#define LINE_SEP "\r\n"
#else
#define PATH_ENV_VAR "PATH"
#define DIR_SEP "/"
#define PATH_SEP ":"
+#define LINE_SEP "\n"
#endif
typedef int (ReaderFn)(size_t line, char **);
@@ -32,12 +34,14 @@ int touch(const char *filename);
int git_clone(struct Process *proc, char *url, char *destdir, char *gitref);
char *git_describe(const char *path);
+#define OMC_MSG_SUCCESS 0
#define OMC_MSG_NOP 1 << 0
#define OMC_MSG_ERROR 1 << 1
#define OMC_MSG_WARN 1 << 2
#define OMC_MSG_L1 1 << 3
#define OMC_MSG_L2 1 << 4
#define OMC_MSG_L3 1 << 5
-int msg(unsigned type, char *fmt, ...);
+void msg(unsigned type, char *fmt, ...);
+void debug_shell();
#endif //OHMYCAL_UTILS_H
diff --git a/src/utils.c b/src/utils.c
index c0bb28f..4e82a64 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -370,14 +370,14 @@ char *git_describe(const char *path) {
#define OMC_COLOR_WHITE "\e[1;97m"
#define OMC_COLOR_RESET "\e[0;37m\e[0m"
-int msg(unsigned type, char *fmt, ...) {
+void msg(unsigned type, char *fmt, ...) {
FILE *stream = NULL;
char header[255];
char status[255];
if (type & OMC_MSG_NOP) {
// quiet mode
- return 0;
+ return;
}
memset(header, 0, sizeof(header));
@@ -415,3 +415,10 @@ int msg(unsigned type, char *fmt, ...) {
printf("%s", OMC_COLOR_RESET);
va_end(args);
}
+
+void debug_shell() {
+ msg(OMC_MSG_L1 | OMC_MSG_WARN, "ENTERING OMC DEBUG SHELL\n" OMC_COLOR_RESET);
+ system("/bin/bash -c 'PS1=\"(OMC DEBUG) \\W $ \" bash --norc --noprofile'");
+ msg(OMC_MSG_L1 | OMC_MSG_WARN, "EXITING OMC DEBUG SHELL\n" OMC_COLOR_RESET);
+ exit(255);
+}