]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/web/recipes/gpx.rb
Add a load more cookbooks to the public repository
[chef.git] / cookbooks / web / recipes / gpx.rb
diff --git a/cookbooks/web/recipes/gpx.rb b/cookbooks/web/recipes/gpx.rb
new file mode 100644 (file)
index 0000000..c5d0088
--- /dev/null
@@ -0,0 +1,81 @@
+#
+# Cookbook Name:: web
+# Recipe:: gpx
+#
+# Copyright 2011, OpenStreetMap Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+include_recipe "web::base"
+
+db_passwords = data_bag_item("db", "passwords")
+
+package "gcc"
+package "make"
+package "pkg-config"
+package "libarchive-dev"
+package "libbz2-dev"
+package "libexpat1-dev"
+package "libgd2-noxpm-dev"
+package "libmemcached-dev"
+package "libpq-dev"
+package "zlib1g-dev"
+
+gpx_directory = "#{node[:web][:base_directory]}/gpx-import"
+pid_directory = node[:web][:pid_directory]
+log_directory = node[:web][:log_directory]
+
+execute "gpx-import-build" do
+  action :nothing
+  command "make DB=postgres"
+  cwd "#{gpx_directory}/src"
+  user "rails"
+  group "rails"
+end
+
+git gpx_directory do
+  action :sync
+  repository "git://git.openstreetmap.org/gpx-import.git"
+  revision "live"
+  user "rails"
+  group "rails"
+  notifies :run, resources(:execute => "gpx-import-build"), :immediate
+end
+
+template "/etc/init.d/gpx-import" do
+  source "init.gpx.erb"
+  owner "root"
+  group "root"
+  mode 0755
+  variables :gpx_directory => gpx_directory,
+            :pid_directory => pid_directory,
+            :log_directory => log_directory,
+            :database_host =>  node[:web][:database_host],
+            :database_name => "openstreetmap",
+            :database_username => "gpximport",
+            :database_password => db_passwords["gpximport"]
+end
+
+if ["database_offline", "database_readonly", "gpx_offline"].include?(node[:web][:status])
+  service "gpx-import" do
+    action :stop
+  end
+else
+  service "gpx-import" do
+    action [ :enable, :start ]
+    supports :restart => true, :reload => true
+    subscribes :restart, resources(:execute => "gpx-import-build")
+    subscribes :restart, resources(:template => "/etc/init.d/gpx-import")
+  end
+end