about summary refs log tree commit diff
path: root/third_party/git/trace2/tr2_sysenv.c
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2021-09-21T10·03+0300
committerVincent Ambo <mail@tazj.in>2021-09-21T11·29+0300
commit43b1791ec601732ac31195df96781a848360a9ac (patch)
treedaae8d638343295d2f1f7da955e556ef4c958864 /third_party/git/trace2/tr2_sysenv.c
parent2d8e7dc9d9c38127ec4ebd13aee8e8f586a43318 (diff)
chore(3p/git): Unvendor git and track patches instead r/2903
This was vendored a long time ago under the expectation that keeping
it in sync with cgit would be easier this way, but it has proven not
to be a big issue.

On the other hand, a vendored copy of git is an annoying maintenance
burden. It is much easier to rebase the single (dottime) patch that we
have.

This removes the vendored copy of git and instead passes the git
source code to cgit via `pkgs.srcOnly`, which includes the applied
patch so that cgit can continue rendering dottime.

Change-Id: If31f62dea7ce688fd1b9050204e9378019775f2b
Diffstat (limited to 'third_party/git/trace2/tr2_sysenv.c')
-rw-r--r--third_party/git/trace2/tr2_sysenv.c132
1 files changed, 0 insertions, 132 deletions
diff --git a/third_party/git/trace2/tr2_sysenv.c b/third_party/git/trace2/tr2_sysenv.c
deleted file mode 100644
index a380dcf910..0000000000
--- a/third_party/git/trace2/tr2_sysenv.c
+++ /dev/null
@@ -1,132 +0,0 @@
-#include "cache.h"
-#include "config.h"
-#include "dir.h"
-#include "tr2_sysenv.h"
-
-/*
- * Each entry represents a trace2 setting.
- * See Documentation/technical/api-trace2.txt
- */
-struct tr2_sysenv_entry {
-	const char *env_var_name;
-	const char *git_config_name;
-
-	char *value;
-	unsigned int getenv_called : 1;
-};
-
-/*
- * This table must match "enum tr2_sysenv_variable" in tr2_sysenv.h.
- *
- * The strings in this table are constant and must match the published
- * config and environment variable names as described in the documentation.
- *
- * We do not define entries for the GIT_TRACE2_PARENT_* environment
- * variables because they are transient and used to pass information
- * from parent to child git processes, rather than settings.
- */
-/* clang-format off */
-static struct tr2_sysenv_entry tr2_sysenv_settings[] = {
-	[TR2_SYSENV_CFG_PARAM]     = { "GIT_TRACE2_CONFIG_PARAMS",
-				       "trace2.configparams" },
-	[TR2_SYSENV_ENV_VARS]      = { "GIT_TRACE2_ENV_VARS",
-				       "trace2.envvars" },
-
-	[TR2_SYSENV_DST_DEBUG]     = { "GIT_TRACE2_DST_DEBUG",
-				       "trace2.destinationdebug" },
-
-	[TR2_SYSENV_NORMAL]        = { "GIT_TRACE2",
-				       "trace2.normaltarget" },
-	[TR2_SYSENV_NORMAL_BRIEF]  = { "GIT_TRACE2_BRIEF",
-				       "trace2.normalbrief" },
-
-	[TR2_SYSENV_EVENT]         = { "GIT_TRACE2_EVENT",
-				       "trace2.eventtarget" },
-	[TR2_SYSENV_EVENT_BRIEF]   = { "GIT_TRACE2_EVENT_BRIEF",
-				       "trace2.eventbrief" },
-	[TR2_SYSENV_EVENT_NESTING] = { "GIT_TRACE2_EVENT_NESTING",
-				       "trace2.eventnesting" },
-
-	[TR2_SYSENV_PERF]          = { "GIT_TRACE2_PERF",
-				       "trace2.perftarget" },
-	[TR2_SYSENV_PERF_BRIEF]    = { "GIT_TRACE2_PERF_BRIEF",
-				       "trace2.perfbrief" },
-
-	[TR2_SYSENV_MAX_FILES]     = { "GIT_TRACE2_MAX_FILES",
-				       "trace2.maxfiles" },
-};
-/* clang-format on */
-
-static int tr2_sysenv_cb(const char *key, const char *value, void *d)
-{
-	int k;
-
-	if (!starts_with(key, "trace2."))
-		return 0;
-
-	for (k = 0; k < ARRAY_SIZE(tr2_sysenv_settings); k++) {
-		if (!strcmp(key, tr2_sysenv_settings[k].git_config_name)) {
-			free(tr2_sysenv_settings[k].value);
-			tr2_sysenv_settings[k].value = xstrdup(value);
-			return 0;
-		}
-	}
-
-	return 0;
-}
-
-/*
- * Load Trace2 settings from the system config (usually "/etc/gitconfig"
- * unless we were built with a runtime-prefix).  These are intended to
- * define the default values for Trace2 as requested by the administrator.
- *
- * Then override with the Trace2 settings from the global config.
- */
-void tr2_sysenv_load(void)
-{
-	if (ARRAY_SIZE(tr2_sysenv_settings) != TR2_SYSENV_MUST_BE_LAST)
-		BUG("tr2_sysenv_settings size is wrong");
-
-	read_very_early_config(tr2_sysenv_cb, NULL);
-}
-
-/*
- * Return the value for the requested Trace2 setting from these sources:
- * the system config, the global config, and the environment.
- */
-const char *tr2_sysenv_get(enum tr2_sysenv_variable var)
-{
-	if (var >= TR2_SYSENV_MUST_BE_LAST)
-		BUG("tr2_sysenv_get invalid var '%d'", var);
-
-	if (!tr2_sysenv_settings[var].getenv_called) {
-		const char *v = getenv(tr2_sysenv_settings[var].env_var_name);
-		if (v && *v) {
-			free(tr2_sysenv_settings[var].value);
-			tr2_sysenv_settings[var].value = xstrdup(v);
-		}
-		tr2_sysenv_settings[var].getenv_called = 1;
-	}
-
-	return tr2_sysenv_settings[var].value;
-}
-
-/*
- * Return a friendly name for this setting that is suitable for printing
- * in an error messages.
- */
-const char *tr2_sysenv_display_name(enum tr2_sysenv_variable var)
-{
-	if (var >= TR2_SYSENV_MUST_BE_LAST)
-		BUG("tr2_sysenv_get invalid var '%d'", var);
-
-	return tr2_sysenv_settings[var].env_var_name;
-}
-
-void tr2_sysenv_release(void)
-{
-	int k;
-
-	for (k = 0; k < ARRAY_SIZE(tr2_sysenv_settings); k++)
-		free(tr2_sysenv_settings[k].value);
-}