summaryrefslogtreecommitdiff
path: root/bin/web
diff options
context:
space:
mode:
Diffstat (limited to 'bin/web')
-rwxr-xr-xbin/web61
1 files changed, 52 insertions, 9 deletions
diff --git a/bin/web b/bin/web
index b714ad1e1bb..c1ab4718f0d 100755
--- a/bin/web
+++ b/bin/web
@@ -3,18 +3,61 @@
set -e
cd $(dirname $0)/..
+app_root=$(pwd)
-case "$USE_WEB_SERVER" in
- puma|"") # and the "" defines default
- exec bin/web_puma "$@"
- ;;
+puma_pidfile="$app_root/tmp/pids/puma.pid"
+puma_config="$app_root/config/puma.rb"
- unicorn)
- exec bin/web_unicorn "$@"
- ;;
+spawn_puma()
+{
+ exec bundle exec puma --config "${puma_config}" --environment "$RAILS_ENV" "$@"
+}
- *)
- echo "Unkown web server used by USE_WEB_SERVER: $USE_WEB_SERVER."
+get_puma_pid()
+{
+ pid=$(cat "${puma_pidfile}")
+ if [ -z "$pid" ] ; then
+ echo "Could not find a PID in $puma_pidfile"
exit 1
+ fi
+ echo "${pid}"
+}
+
+start()
+{
+ spawn_puma &
+}
+
+start_foreground()
+{
+ spawn_puma
+}
+
+stop()
+{
+ get_puma_pid
+ kill -INT "$(get_puma_pid)"
+}
+
+reload()
+{
+ kill -USR2 "$(get_puma_pid)"
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ start_foreground)
+ start_foreground
+ ;;
+ stop)
+ stop
+ ;;
+ reload)
+ reload
+ ;;
+ *)
+ echo "Usage: RAILS_ENV=your_env $0 {start|stop|reload}"
;;
esac