]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/web/templates/default/cgimap.init.erb
Use cgimap from PPA rather than building from source.
[chef.git] / cookbooks / web / templates / default / cgimap.init.erb
diff --git a/cookbooks/web/templates/default/cgimap.init.erb b/cookbooks/web/templates/default/cgimap.init.erb
new file mode 100644 (file)
index 0000000..a2b25d2
--- /dev/null
@@ -0,0 +1,56 @@
+#!/bin/bash
+
+<%
+pid_directory = node[:web][:pid_directory]
+log_directory = node[:web][:log_directory]
+
+if node[:web][:readonly_database_host]
+  database_host = node[:web][:readonly_database_host]
+  database_readonly = true
+else
+  database_host = node[:web][:database_host]
+  database_readonly = node[:web][:status] == "database_readonly"
+end
+
+memcached_servers = node[:web][:memcached_servers] || []
+%>
+
+CGIMAP_HOST=<%= database_host %>; export CGIMAP_HOST
+CGIMAP_DBNAME=openstreetmap; export CGIMAP_DBNAME
+CGIMAP_USERNAME=rails; export CGIMAP_USERNAME
+CGIMAP_PASSWORD=<%= @db_password %>; export CGIMAP_PASSWORD
+
+CGIMAP_PIDFILE=<%= pid_directory + "/cgimap.pid" %>; export CGIMAP_PIDFILE
+CGIMAP_LOGFILE=<%= log_directory + "/cgimap.log" %>; export CGIMAP_LOGFILE
+
+CGIMAP_MEMCACHE=<%= memcached_servers.join(",") %>; export CGIMAP_MEMCACHE
+CGIMAP_RATELIMIT=204800; export CGIMAP_RATELIMIT
+CGIMAP_MAXDEBT=250; export CGIMAP_MAXDEBT
+
+start() {
+  start-stop-daemon --start --chuid rails --exec /usr/bin/openstreetmap-cgimap -- --daemon --port=8000 --instances=30 --pidfile $CGIMAP_PIDFILE
+}
+
+stop() {
+  start-stop-daemon --stop --retry 300 --pidfile $CGIMAP_PIDFILE
+}
+
+reload() {
+  start-stop-daemon --stop --signal HUP --pidfile $CGIMAP_PIDFILE
+}
+
+case "$1" in
+  start)
+    start
+    ;;
+  stop)
+    stop
+    ;;
+  reload)
+    reload
+    ;;
+  restart)
+    stop || exit $?
+    start
+    ;;
+esac