aboutsummaryrefslogtreecommitdiff
path: root/bin/app-operate
diff options
context:
space:
mode:
Diffstat (limited to 'bin/app-operate')
-rwxr-xr-xbin/app-operate73
1 files changed, 73 insertions, 0 deletions
diff --git a/bin/app-operate b/bin/app-operate
new file mode 100755
index 0000000..dc16780
--- /dev/null
+++ b/bin/app-operate
@@ -0,0 +1,73 @@
+#!/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 <operate method>" >&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 $?
+}