Warning

This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.

Source code for galaxy.tools.deps.singularity_util

from six.moves import shlex_quote


DEFAULT_WORKING_DIRECTORY = None
DEFAULT_SINGULARITY_COMMAND = "singularity"
DEFAULT_SUDO = False
DEFAULT_SUDO_COMMAND = "sudo"
DEFAULT_RUN_EXTRA_ARGUMENTS = None


[docs]def build_singularity_run_command( container_command, image, volumes=[], env=[], working_directory=DEFAULT_WORKING_DIRECTORY, singularity_cmd=DEFAULT_SINGULARITY_COMMAND, run_extra_arguments=DEFAULT_RUN_EXTRA_ARGUMENTS, sudo=DEFAULT_SUDO, sudo_cmd=DEFAULT_SUDO_COMMAND, ): command_parts = [] # http://singularity.lbl.gov/docs-environment-metadata for (key, value) in env: command_parts.extend(["SINGULARITYENV_%s=%s" % (key, value)]) command_parts += _singularity_prefix( singularity_cmd=singularity_cmd, sudo=sudo, sudo_cmd=sudo_cmd, ) command_parts.append("exec") for volume in volumes: command_parts.extend(["-B", shlex_quote(str(volume))]) if working_directory: command_parts.extend(["--pwd", shlex_quote(working_directory)]) if run_extra_arguments: command_parts.append(run_extra_arguments) full_image = image command_parts.append(shlex_quote(full_image)) command_parts.append(container_command) return " ".join(command_parts)
def _singularity_prefix( singularity_cmd=DEFAULT_SINGULARITY_COMMAND, sudo=DEFAULT_SUDO, sudo_cmd=DEFAULT_SUDO_COMMAND, **kwds ): """Prefix to issue a singularity command.""" command_parts = [] if sudo: command_parts.append(sudo_cmd) command_parts.append(singularity_cmd) return command_parts __all__ = ("build_singularity_run_command",)