#!/bin/bash if [[ $APPSH_HOME == "" ]] then APPSH_HOME=`dirname "$0"` APPSH_HOME=`cd "$APPSH_HOME/.." && pwd` fi operate_usage() { if [ -n "$1" ] then echo "Error:" "$@" >&2 fi echo "usage: $0 [operate method] -n name -i instance" >&2 exit 1 } method_operate_usage() { if [ -n "$1" ] then echo "Error:" $@ >&2 fi echo "usage: $0 operate " >&2 echo "" >&2 echo "Available operate methods:" >&2 echo " start" >&2 echo " stop" >&2 echo " restart" >&2 echo " status" >&2 } method_operate() { local name="$1"; shift local instance="$1"; shift local method="$1" if [ $# -gt 0 ] then shift fi bin=`$APPSH_HOME/bin/app-cat-conf -f $apps/$name/$instance/current/etc/app.conf -g app -k method | cut -f 2 -d =` if [ -z "$bin" ] then bin=$APPSH_HOME/.app/lib/pid-method fi if [ ! -x "$name/$instance/current/$bin" ] then echo "Invalid executable: $bin" >&2 exit 1 fi case "$method" in start) run_app "$name" "$instance" "$bin" "start" "$@" ;; stop) run_app "$name" "$instance" "$bin" "stop" "$@" ;; status) run_app "$name" "$instance" "$bin" "status" "$@" ;; restart) run_app "$name" "$instance" "$bin" "restart" "$@" ;; run) run_app "$name" "$instance" "$bin" "run" "$@" ;; *) if [ -z "$method" ] then method_operate_usage else method_operate_usage "Unknown method $method" fi ;; esac exit $? }