aboutsummaryrefslogtreecommitdiff
path: root/include/core.h
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@users.noreply.github.com>2024-06-21 12:49:45 -0400
committerGitHub <noreply@github.com>2024-06-21 12:49:45 -0400
commit77a0276d9f37bcf828c77f9bcc59ff945116274e (patch)
tree91cf7cb955798ad40718341172b0a8ffbc59a1f2 /include/core.h
parent931ee28eb9c5b5e3c2b0d3008f5f65d810dc9b0c (diff)
downloadstasis-77a0276d9f37bcf828c77f9bcc59ff945116274e.tar.gz
Rebrand OhMyCal (OMC) as STASIS (#7)
Diffstat (limited to 'include/core.h')
-rw-r--r--include/core.h99
1 files changed, 99 insertions, 0 deletions
diff --git a/include/core.h b/include/core.h
new file mode 100644
index 0000000..1a7ddea
--- /dev/null
+++ b/include/core.h
@@ -0,0 +1,99 @@
+//! @file stasis.h
+#ifndef STASIS_CORE_H
+#define STASIS_CORE_H
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <limits.h>
+#include <unistd.h>
+#include <time.h>
+#include <sys/statvfs.h>
+
+#define SYSERROR(MSG, ...) do { \
+ fprintf(stderr, "%s:%s:%d:%s - ", path_basename(__FILE__), __FUNCTION__, __LINE__, strerror(errno) ? "info" : strerror(errno)); \
+ fprintf(stderr, MSG LINE_SEP, __VA_ARGS__); \
+} while (0)
+#define STASIS_BUFSIZ 8192
+#define STASIS_NAME_MAX 255
+#define STASIS_DIRSTACK_MAX 1024
+#define STASIS_TIME_STR_MAX 128
+#define HTTP_ERROR(X) X >= 400
+
+#include "config.h"
+#include "template.h"
+#include "utils.h"
+#include "copy.h"
+#include "ini.h"
+#include "conda.h"
+#include "environment.h"
+#include "artifactory.h"
+#include "docker.h"
+#include "delivery.h"
+#include "str.h"
+#include "strlist.h"
+#include "system.h"
+#include "download.h"
+#include "recipe.h"
+#include "relocation.h"
+#include "wheel.h"
+#include "junitxml.h"
+
+#define guard_runtime_free(X) do { if (X) { runtime_free(X); X = NULL; } } while (0)
+#define guard_strlist_free(X) do { if ((*X)) { strlist_free(X); (*X) = NULL; } } while (0)
+#define guard_free(X) do { if (X) { free(X); X = NULL; } } while (0)
+#define GENERIC_ARRAY_FREE(ARR) do { \
+ for (size_t ARR_I = 0; ARR && ARR[ARR_I] != NULL; ARR_I++) { \
+ guard_free(ARR[ARR_I]); \
+ } \
+ guard_free(ARR); \
+} while (0)
+
+#define COE_CHECK_ABORT(COND, MSG) \
+ do {\
+ if (!globals.continue_on_error && COND) { \
+ msg(STASIS_MSG_ERROR, MSG ": Aborting execution (--continue-on-error/-C is not enabled)\n"); \
+ exit(1); \
+ } \
+ } while (0)
+
+struct STASIS_GLOBAL {
+ bool verbose; //!< Enable verbose output
+ bool always_update_base_environment; //!< Update base environment immediately after activation
+ bool continue_on_error; //!< Do not stop on test failures
+ bool conda_fresh_start; //!< Always install a new copy of Conda
+ bool enable_docker; //!< Enable docker image builds
+ bool enable_artifactory; //!< Enable artifactory uploads
+ bool enable_testing; //!< Enable package testing
+ struct StrList *conda_packages; //!< Conda packages to install after initial activation
+ struct StrList *pip_packages; //!< Pip packages to install after initial activation
+ char *tmpdir; //!< Path to temporary storage directory
+ char *conda_install_prefix; //!< Path to install conda
+ char *sysconfdir; //!< Path where STASIS reads its configuration files (mission directory, etc)
+ struct {
+ char *tox_posargs;
+ } workaround;
+ struct Jfrog {
+ char *jfrog_artifactory_base_url;
+ char *jfrog_artifactory_product;
+ char *cli_major_ver;
+ char *version;
+ char *os;
+ char *arch;
+ char *remote_filename;
+ char *repo;
+ char *url;
+ } jfrog;
+};
+extern struct STASIS_GLOBAL globals;
+extern const char *VERSION;
+extern const char *AUTHOR;
+extern const char *BANNER;
+
+
+/**
+ * Free memory allocated in global configuration structure
+ */
+void globals_free();
+
+#endif //STASIS_CORE_H