Metadata-Version: 2.2
Name: nbipackager
Version: 0.0.3
Summary: A package manager for Singularity images
Author-email: Andrea Telatin <andrea.telatin@quadram.ac.uk>
License: MIT
Project-URL: Homepage, https://github.com/quadram-institute-bioscience/nbipackager
Project-URL: Documentation, https://github.com/quadram-institute-bioscience/nbipackager#readme
Project-URL: Repository, https://github.com/quadram-institute-bioscience/nbipackager.git
Project-URL: Bug Tracker, https://github.com/quadram-institute-bioscience/nbipackager/issues
Keywords: singularity,container,package-manager
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Software Development :: Build Tools
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8.0.0
Requires-Dist: configparser>=5.0.0

# Packager

A command-line tool for managing Singularity images and creating executable bundles.

## Installation

```bash
pip install .
```

## Configuration

The configuration file is stored at `~/.config/packager.ini`:

```ini
[packager]
singularity_path = /path/to/images
bin_path = /path/to/bin
packages_path = /path/to/packages

[images]
# This section is automatically populated by the tool
```

## Usage

### Add a set of singularity images
```bash
# From singularity_path
packager scanpackages
# From custom path
packager scanpackages --dir /qib/platforms/Informatics/transfer/outgoing/singularity/core
```

### Add single singularity image as package
```bash
bashpackager addpackage --image /path/to/image.simg --name mypackage --version 1.0.0
```


### Create a "HPC package" (bundle)
```bash
# Make an empty bundle
packager makebundle --name mybundle

# Make a bundle with one or more packages
packager makebundle --name denovo megahit=1.2.9 fastp=1.20.0
```

### Add package to bundle
```bash
# By default each package is exposed as a binary called package. You can add "aliases" i.e. each binary to expose
packager addtobundle --name mybundle --package blast --version 1.0 blastn makeblastdb blastp
```
