aboutsummaryrefslogtreecommitdiff
path: root/libexec/app-operate
diff options
context:
space:
mode:
Diffstat (limited to 'libexec/app-operate')
-rwxr-xr-xlibexec/app-operate50
1 files changed, 50 insertions, 0 deletions
diff --git a/libexec/app-operate b/libexec/app-operate
new file mode 100755
index 0000000..8e4ecac
--- /dev/null
+++ b/libexec/app-operate
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+set -e
+set -u
+
+APPSH_HOME=$(cd $(dirname "$0")/.. && pwd)
+
+. $APPSH_HOME/lib/common
+# HEADER END
+
+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 $?
+}