aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2024-12-06 08:46:26 -0500
committerJoseph Hunkeler <jhunkeler@gmail.com>2024-12-06 08:46:26 -0500
commitc2fd3e850a3e1fb7ba0b694e8d2baa6ede1f170d (patch)
treec694964918e2f01ba29f5ad19fa46a321bffd4f1
parent41c76e0ca3f34fd46235bac6c2c9eac0497b28fb (diff)
downloadstasis-c2fd3e850a3e1fb7ba0b694e8d2baa6ede1f170d.tar.gz
The indexer now installs conda into ~/.stasis/indexer/conda instead of installing it from scratch every time.
* We only need conda's indexer anyway * Same applies to ~/.stasis/indexer/tools assuming we ever need to use `jf` directly (not yet)
-rw-r--r--src/cli/stasis_indexer/stasis_indexer_main.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/cli/stasis_indexer/stasis_indexer_main.c b/src/cli/stasis_indexer/stasis_indexer_main.c
index 016b26e..4649c7a 100644
--- a/src/cli/stasis_indexer/stasis_indexer_main.c
+++ b/src/cli/stasis_indexer/stasis_indexer_main.c
@@ -133,9 +133,15 @@ void indexer_init_dirs(struct Delivery *ctx, const char *workdir) {
fprintf(stderr, "Failed to configure temporary storage directory\n");
exit(1);
}
+
+ char *user_dir = expandpath("~/.stasis/indexer");
+ if (!user_dir) {
+ SYSERROR("%s", "expandpath failed");
+ }
+
path_store(&ctx->storage.output_dir, PATH_MAX, ctx->storage.root, "");
- path_store(&ctx->storage.tools_dir, PATH_MAX, ctx->storage.output_dir, "tools");
- path_store(&globals.conda_install_prefix, PATH_MAX, ctx->storage.tools_dir, "conda");
+ path_store(&ctx->storage.tools_dir, PATH_MAX, user_dir, "tools");
+ path_store(&globals.conda_install_prefix, PATH_MAX, user_dir, "conda");
path_store(&ctx->storage.cfgdump_dir, PATH_MAX, ctx->storage.output_dir, "config");
path_store(&ctx->storage.meta_dir, PATH_MAX, ctx->storage.output_dir, "meta");
path_store(&ctx->storage.delivery_dir, PATH_MAX, ctx->storage.output_dir, "delivery");
@@ -143,6 +149,7 @@ void indexer_init_dirs(struct Delivery *ctx, const char *workdir) {
path_store(&ctx->storage.results_dir, PATH_MAX, ctx->storage.output_dir, "results");
path_store(&ctx->storage.wheel_artifact_dir, PATH_MAX, ctx->storage.package_dir, "wheels");
path_store(&ctx->storage.conda_artifact_dir, PATH_MAX, ctx->storage.package_dir, "conda");
+ guard_free(user_dir);
char newpath[PATH_MAX] = {0};
if (getenv("PATH")) {