diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-12-06 08:46:26 -0500 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-12-06 08:46:26 -0500 |
commit | c2fd3e850a3e1fb7ba0b694e8d2baa6ede1f170d (patch) | |
tree | c694964918e2f01ba29f5ad19fa46a321bffd4f1 | |
parent | 41c76e0ca3f34fd46235bac6c2c9eac0497b28fb (diff) | |
download | stasis-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.c | 11 |
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")) { |