Sha256: 7c66517f23621c126b4916b3676de8c1aabf3f9aecebfdb9f151f3af740e7e8b

Contents?: true

Size: 1.31 KB

Versions: 5

Compression:

Stored size: 1.31 KB

Contents

#!/bin/bash

if [[ "${BASH_SOURCE##*/}" != "_sub" ]]; then
  shome="$(unset CDPATH; 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"
    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

5 entries across 5 versions & 1 rubygems

Version Path
tvd-tvdinner-0.0.13 cookbooks/tvdinner/files/default/jasonx/_sub
tvd-tvdinner-0.0.12 cookbooks/tvdinner/files/default/jasonx/_sub
tvd-tvdinner-0.0.11 cookbooks/tvdinner/files/default/jasonx/_sub
tvd-tvdinner-0.0.9 cookbooks/tvdinner/files/default/jasonx/_sub
tvd-tvdinner-0.0.8 cookbooks/tvdinner/files/default/jasonx/_sub