diff --git a/libmamba/include/mamba/core/channel.hpp b/libmamba/include/mamba/core/channel.hpp index 3bff04e32d..a39d6559a5 100644 --- a/libmamba/include/mamba/core/channel.hpp +++ b/libmamba/include/mamba/core/channel.hpp @@ -18,7 +18,8 @@ namespace mamba { - std::vector get_known_platforms(); + const std::vector& get_known_platforms(); + // Note: Channels can only be created using ChannelContext. class Channel { diff --git a/libmamba/src/api/configuration.cpp b/libmamba/src/api/configuration.cpp index a3b34337d1..a4aff994b6 100644 --- a/libmamba/src/api/configuration.cpp +++ b/libmamba/src/api/configuration.cpp @@ -1137,6 +1137,14 @@ namespace mamba .set_post_merge_hook(detail::envs_dirs_hook) .description("Possible locations of named environments")); + insert(Configurable("register_envs", &ctx.register_envs) + .group("Basic") + .set_rc_configurable() + .set_env_var_names({ "CONDA_REGISTER_ENVS" }) + .needs({ "root_prefix" }) + .description("whether to add the newly created prefix to ~/.conda/environments.txt" + )); + insert(Configurable("pkgs_dirs", &ctx.pkgs_dirs) .group("Basic") .set_rc_configurable() diff --git a/libmamba/src/core/channel.cpp b/libmamba/src/core/channel.cpp index 66cef72e3e..7a935facf5 100644 --- a/libmamba/src/core/channel.cpp +++ b/libmamba/src/core/channel.cpp @@ -255,7 +255,7 @@ namespace mamba } } // namespace - std::vector get_known_platforms() + const std::vector& get_known_platforms() { return KNOWN_PLATFORMS; } diff --git a/libmambapy/libmambapy/__init__.pyi b/libmambapy/libmambapy/__init__.pyi index d232db1631..fea1894210 100644 --- a/libmambapy/libmambapy/__init__.pyi +++ b/libmambapy/libmambapy/__init__.pyi @@ -729,6 +729,14 @@ class Context: def quiet(self, arg1: bool) -> None: pass @property + def register_envs(self) -> bool: + """ + :type: bool + """ + @register_envs.setter + def register_envs(self, arg0: bool) -> None: + pass + @property def remote_fetch_params(self) -> Context.RemoteFetchParams: """ :type: Context.RemoteFetchParams diff --git a/libmambapy/src/main.cpp b/libmambapy/src/main.cpp index e563a4dc08..887c56d262 100644 --- a/libmambapy/src/main.cpp +++ b/libmambapy/src/main.cpp @@ -534,6 +534,7 @@ PYBIND11_MODULE(bindings, m) .def_readwrite("always_yes", &Context::always_yes) .def_readwrite("dry_run", &Context::dry_run) .def_readwrite("download_only", &Context::download_only) + .def_readwrite("register_envs", &Context::register_envs) .def_readwrite("add_pip_as_python_dependency", &Context::add_pip_as_python_dependency) .def_readwrite("envs_dirs", &Context::envs_dirs) .def_readwrite("pkgs_dirs", &Context::pkgs_dirs) diff --git a/micromamba/src/common_options.cpp b/micromamba/src/common_options.cpp index eb4c3ca57b..418d284714 100644 --- a/micromamba/src/common_options.cpp +++ b/micromamba/src/common_options.cpp @@ -452,3 +452,16 @@ init_install_options(CLI::App* subcom, Configuration& config) "Categories of package to install from environment lockfile" ); } + +void +init_create_options(CLI::App* subcom, Configuration& config) +{ + init_install_options(subcom, config); + + auto& register_envs = config.at("register_envs"); + subcom->add_flag( + "--register-envs", + register_envs.get_cli_config(), + register_envs.description() + ); +} diff --git a/micromamba/src/common_options.hpp b/micromamba/src/common_options.hpp index 40c4a3f4f2..af65289e82 100644 --- a/micromamba/src/common_options.hpp +++ b/micromamba/src/common_options.hpp @@ -25,6 +25,9 @@ init_prefix_options(CLI::App* subcom, mamba::Configuration& config); void init_install_options(CLI::App* subcom, mamba::Configuration& config); +void +init_create_options(CLI::App* subcom, mamba::Configuration& config); + void init_network_options(CLI::App* subcom, mamba::Configuration& config); diff --git a/micromamba/src/create.cpp b/micromamba/src/create.cpp index c057e1b7c5..d316dca80a 100644 --- a/micromamba/src/create.cpp +++ b/micromamba/src/create.cpp @@ -14,7 +14,7 @@ using namespace mamba; // NOLINT(build/namespaces) void set_create_command(CLI::App* subcom, Configuration& config) { - init_install_options(subcom, config); + init_create_options(subcom, config); subcom->callback([&] { return mamba::create(config); }); }