Skip to main content

A Docker based CLI Tools manager.

Project description

Ctshed - Container Toolshed

Travis (.org) Coveralls github PyPI - Python Version PyPI GitHub Project Status: Concept – Minimal or no implementation has been done yet, or the repository is only intended to be a limited example, demo, or proof-of-concept.

Container Toolshed. A CLI tool manager for creating container centric namespaces with specific tools installed. This could possibly help to easier manage cli tools for users (multiple tool versions, no screw-up with os level package executables)

Example

# a single tool executable, debian:stable implicit source
ctshed install --packages=curl --cmd=curl mycurl
# downloads the P04156.fasta file and saves it in the current directory
ctshed-mycurl -LO https://www.uniprot.org/uniprot/P04156.fasta

# a tool namespace 
ctshed install --source=biocontainers/blast:2.2.31 myblast
ctshed-myblast curl -LO https://www.uniprot.org/uniprot/P04156.fasta
ctshed-myblast curl -LO ftp://ftp.ncbi.nih.gov/refseq/D_rerio/mRNA_Prot/zebrafish.1.protein.faa.gz
ctshed-myblast gunzip zebrafish.1.protein.faa.gz
ctshed-myblast makeblastdb -in zebrafish.1.protein.faa -dbtype prot
ctshed-myblast blastp -query P04156.fasta -db zebrafish.1.protein.faa -out results.txt

Installation

pip install ctshed

The tool places binaries to ~/bin directory blindly without checking if it exists or if theres a nameclash. Make sure ~/bin exists in your path. E.g. place something like this in ~/.bash_rc:

#~/.bash_rc file
export PATH="$HOME/bin:$PATH"

The tool depends on docker binary existing on the host system. You have to install it if you don't have it. Installation of docker on ubuntu systems is described docker-ce/ubuntu

Features

  • Create a docker based tool namespace
  • Create an executable with specific tool installation

Principles of working

  1. An image is created during the install step and some name is automatically given to it.
  2. An executable is created in executable directory of the users workspace.
  3. Executable contains a container run command with stdin/stdout/stderr attached and /home directory mounted.

Testing

python -m unittest discover tests

Limitations

There are limitations with using container as a wrapper for command line.

  • Configuration might not be picked up by the tool.
  • Input/Output works correctly only under /home directory
  • Security, because /home is mounted
  • More will come.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ctshed-0.1.1.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ctshed-0.1.1-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file ctshed-0.1.1.tar.gz.

File metadata

  • Download URL: ctshed-0.1.1.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for ctshed-0.1.1.tar.gz
Algorithm Hash digest
SHA256 6b3cb35b056d37476557cabccec8cad0214840e6083031b45311cc876ce3d837
MD5 2c07bc875579ddfc3195ed08148ebbe1
BLAKE2b-256 e17b5f60f018fd7288166609509a9aa12bd1cc2eed2fc571daa0275ec8c513af

See more details on using hashes here.

File details

Details for the file ctshed-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: ctshed-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for ctshed-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 26d629f61329b79f99b0d6334dc4f7bb37f3f660f4addabf778ac165419d8aba
MD5 33fc6a86a2f72f94b0c30aec178ac536
BLAKE2b-256 11b9e9e08d32e501df597990746e84f729527dc10cc6b2952d23d337bb38f9f4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page