bio-miga/miga

View on GitHub
scripts/miga.bash

Summary

Maintainability
Test Coverage
#!/bin/bash

###
# Setup environment
set -e
eval "$("$MIGA/bin/miga-env")"
SCRIPT=${SCRIPT:-"$(basename "$0" .bash)"}

###
# Ancillary functions

# Evaluates if the first passed argument is an existing file
function exists { [[ -e "$1" ]] ; }

# Evaluates if the first passed argument is a function
function fx_exists { [[ $(type -t "$1") == "function" ]] ; }

# Initiate a project-wide run
function miga_start_project_step {
  local dir="$1"
  local dir_r="${dir}.running"
  mkdir -p "$dir"
  mkdir -p "$dir_r"
  cd "$dir_r"
  miga date > "miga-project.start"
}

# Finalize a project-wide run
function miga_end_project_step {
  local dir="$1"
  local dir_r="${dir}.running"
  cd "$dir"
  rm -rf miga-project.*
  mv "$dir_r"/miga-project.* .
  rmdir "$dir_r" &>/dev/null || true
  miga date > "miga-project.done"
  miga add_result -P "$PROJECT" -r "$SCRIPT" -f
}

# Environment header
if [[ "$SCRIPT" != "d" && "$SCRIPT" != "p" ]] ; then
  echo ""
  echo "######[ $SCRIPT ]######"
  echo "# Date: $(miga date)"
  echo "# Host: $(hostname) [$CORES]"
  echo "# MiGA: $MIGA"
  echo "# Project: $PROJECT"
  if [[ -n $DATASET ]] ; then
    echo "# Dataset: $DATASET"
    miga edit -P "$PROJECT" -D "$DATASET" -m "_step=$SCRIPT"
  fi
  echo '#------------'
fi

true