#!/bin/bash shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)" function ryaml { ruby -ryaml -e 'def ps x; unless x.nil?; puts (x.class == String || x.class == Fixnum) ? x : x.to_yaml; end; end; ps ARGV[1..-1].inject(YAML.load(File.read(ARGV[0]))) {|acc, key| acc[acc.class == Array ? key.to_i : key] }' "$@" 2>&- } function main { local app_ruby="$(ryaml $shome/config/deploy.yml app_ruby)" local ruby_loader="$(ryaml $shome/config/deploy.yml ruby_loader)" local ruby_runner="$ruby_loader $app_ruby" PATH="$PATH:/usr/local/rvm/bin:$HOME/.rvm/bin" if [[ "$ruby_loader" = "rvm-exec" ]]; then local pth_rvm="$(type -f $ruby_loader 2>&- | awk '{print $3}')" if [[ -x "$pth_rvm" ]]; then true else ruby_runner="" fi fi if ! $ruby_runner bundle check 2>&- > /dev/null; then $ruby_runner bundle install --local --quiet --path vendor/bundle fi $ruby_runner bundle exec ao "${BASH_SOURCE##*/}" "$@" } main "$@"