diff --git a/Programming/anaconda/build b/Programming/anaconda/build new file mode 100755 index 0000000..91c547e --- /dev/null +++ b/Programming/anaconda/build @@ -0,0 +1,24 @@ +#!/usr/bin/env modbuild + +pbuild::add_to_group 'Programming' + +source "${BUILDBLOCK_DIR}/files/config-${V_PKG}.sh" + +pbuild::pre_prep() { + curl -fsSLo "$PMODULES_DISTFILESDIR/Miniconda2-${CONDA_VERSION}-Linux-x86_64.sh" \ + "https://repo.anaconda.com/miniconda/Miniconda2-${CONDA_VERSION}-Linux-x86_64.sh" +} + +pbuild::configure() { + : +} + +pbuild::compile() { + : +} + +pbuild::install() { + # Install conda + bash "$PMODULES_DISTFILESDIR/Miniconda2-${CONDA_VERSION}-Linux-x86_64.sh" \ + -b -p "$PREFIX/conda" +} diff --git a/Programming/anaconda/files/config-2018.12.sh b/Programming/anaconda/files/config-2018.12.sh new file mode 100644 index 0000000..db97718 --- /dev/null +++ b/Programming/anaconda/files/config-2018.12.sh @@ -0,0 +1,6 @@ +# version-specific settings + +# Miniconda version. Defaults to "latest" +# Should match the version distributed with anaconda +CONDA_VERSION=4.5.12 + diff --git a/Programming/anaconda/files/variants b/Programming/anaconda/files/variants new file mode 100644 index 0000000..7310e93 --- /dev/null +++ b/Programming/anaconda/files/variants @@ -0,0 +1,2 @@ +anaconda/2018.12 unstable + diff --git a/Programming/anaconda/modulefile b/Programming/anaconda/modulefile new file mode 100644 index 0000000..6085ca9 --- /dev/null +++ b/Programming/anaconda/modulefile @@ -0,0 +1,61 @@ +#%Module1.0 + +module-whatis "Conda package manager and Anaconda software distribution" +module-url "https://www.anaconda.com/" +module-license "3-clause BSD License and 3rd party software licenses. https://docs.continuum.io/anaconda/eula/" +module-maintainer "Spencer Bliven " + +module-help " +Anaconda is a package manager, an environment manager, a Python/R data science +distribution, and a collection of over 1,500+ open source packages. Anaconda is +free and easy to install, and it offers free community support. + +Conda is an open source package management system and environment management +system that runs on Windows, macOS and Linux. Conda quickly installs, runs and +updates packages and their dependencies. Conda easily creates, saves, loads and +switches between environments on your local computer. It was created for Python +programs, but it can package and distribute software for any language. + +Conda as a package manager helps you find and install packages. If you need a +package that requires a different version of Python, you do not need to switch +to a different environment manager, because conda is also an environment +manager. With just a few commands, you can set up a totally separate +environment to run that different version of Python, while continuing to run +your usual version of Python in your normal environment. + +This package provides the conda command (miniconda), as well as releases of the +Anaconda distribution, built against several python versions. +" + +set dont-setenv { LD_LIBRARY_PATH } + +# Check for supported shell types +set shelltype [module-info shelltype] +switch -- $shelltype { + "sh" { + } + default { + puts stderr "Shells of type '$shelltype' are NOT supported!" + } +} + +switch [module-info mode] { + "load" { + #TODO check whether another conda version is present (conflicts) + + puts stderr "Using conda from $P/$V\n" + puts stdout "source \"$PREFIX/conda/etc/profile.d/conda.sh\";\n" + + # Activate base + puts stdout "conda activate;\n" + } + "unload" - + "remove" { + # Deactivate + puts stdout {while [[ "${CONDA_SHLVL:-0}" -gt 0 ]]; do conda deactivate; done;} + + # Unload conda + puts stdout {unset $(set|sed -rn 's/^(_?conda[a-z_]*).*$/\1/pI');} + } +} +