Bootstrap: library
From: default/debian:buster

%post
  # Declare version variable
  export SNIFFLES_VERSION='1.0.12'
  export SNIFFLES_TAG="v${SNIFFLES_VERSION}b"

  # Install dependencies
  apt-get update
  apt-get install -y --no-install-recommends \
    git cmake make gcc g++ libghc-zlib-dev bash procps build-essential

  # Get Sniffles
  cd /opt || exit 1
  git config --global http.sslverify false
  git clone https://github.com/fritzsedlazeck/Sniffles.git
  cd Sniffles || exit 1
  git checkout $SNIFFLES_TAG

  # Build Sniffles
  mkdir build && cd build || exit 1
  cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local
  make

  # Install Sniffles
  cd ../bin/sniffles-core-$SNIFFLES_VERSION || exit 1
  install -D -m 0755 sniffles -t /usr/local/bin
  install -D -m 0755 sniffles-debug -t /usr/local/bin

  # Cleanup repo
  cd ../.. || exit 1
  rm -rf Sniffles

  # Cleanup packages
  rm -rf /var/lib/apt/lists/*

%test
  command -v bash
  command -v ps
  command -v sniffles
  command -v sniffles-debug

%runscript
  sniffles "$@"

%labels
  Author 25492070+MillironX@users.noreply.github.com
  SoftwareVersion v1.0.12b
  SingularityDefinitionVersion 3

%help
  Sniffles
  ========

  Sniffles is a structural variation caller using third generation sequencing
  (PacBio or Oxford Nanopore). It detects all types of SVs (10bp+) using
  evidence from split-read alignments, high-mismatch regions, and coverage
  analysis.

  For more help, see
  - <https://github.com/fritzsedlazeck/Sniffles>
  - <https://github.com/MillironX/singularity-builds>
