Sha256: 16422e6f47a978ac957e7c1a0319a1d15e048004f2e6e8e88978f18f617ca5a5

Contents?: true

Size: 1.32 KB

Versions: 2

Compression:

Stored size: 1.32 KB

Contents

#!/bin/bash

if [[ "${BASH_SOURCE##*/}" != "_sub" ]]; then
  shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
  source "$shome/libexec/_jason"
  set -- "$BASH_SOURCE" "$@"
fi

if [[ "$(type -t main)" != "function" ]]; then
function main {
  if [[ "$#" > 0 ]]; then
    logger_fatal "Command $sub_base $1 not implemented"
  else
    logger_fatal "Command $sub_base not implemented"
  fi
  exit 1
}
fi

function sub {
  local bsource="$1"; shift
  local sub_base="$(basename "$bsource")"
  local bsource_cmd="$shome/libexec/${sub_base}"

  if [[ "$bsource_cmd" = "$bsource" ]]; then
    FLAGS_SUB="$FLAGS_TRUE"
    export _SUB_ARGS="$@"
    parse_command_line "$@" || exit $?
    eval set -- "${FLAGS_ARGV}"
  fi

  if [[ "$#" > 0 ]]; then
    if [[ ! "$1" =~ ^- ]]; then
      local sub_cmd="$(command -v "${sub_base}-$1" || true)"
      if [[ ! -x "$sub_cmd" ]]; then
        sub_cmd="$shome/libexec/${sub_base}-$1"
      fi

      if [[ -x "$sub_cmd" ]]; then
        shift
        exec "$sub_cmd" "$@"
      fi
    fi
  fi

  if [[ -x "$bsource_cmd" && "$bsource_cmd" != "$bsource" ]]; then
    exec "$bsource_cmd" "$@"
  else
    if [[ "$(type -t main)" = "function" ]]; then
      main "$@"
    else
      logger_fatal "Can't run $sub_base, missing main function"
      exit 1
    fi
  fi
}

if [[ "$#" > 0 ]]; then
  sub "$@"  
fi

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
alpha_omega-1.5.15 libexec/_sub
alpha_omega-1.5.14 libexec/_sub