]> git.openstreetmap.org Git - chef.git/commitdiff
Add an osmosis cookbook to manage an install of osmosis
authorTom Hughes <tom@compton.nu>
Wed, 3 Jul 2013 18:13:13 +0000 (19:13 +0100)
committerTom Hughes <tom@compton.nu>
Wed, 3 Jul 2013 21:22:48 +0000 (22:22 +0100)
cookbooks/osmosis/README.rdoc [new file with mode: 0644]
cookbooks/osmosis/attributes/default.rb [new file with mode: 0644]
cookbooks/osmosis/metadata.rb [new file with mode: 0644]
cookbooks/osmosis/recipes/default.rb [new file with mode: 0644]

diff --git a/cookbooks/osmosis/README.rdoc b/cookbooks/osmosis/README.rdoc
new file mode 100644 (file)
index 0000000..3de2ec7
--- /dev/null
@@ -0,0 +1,8 @@
+= DESCRIPTION:
+
+= REQUIREMENTS:
+
+= ATTRIBUTES:
+
+= USAGE:
+
diff --git a/cookbooks/osmosis/attributes/default.rb b/cookbooks/osmosis/attributes/default.rb
new file mode 100644 (file)
index 0000000..8d4f9a3
--- /dev/null
@@ -0,0 +1,2 @@
+# Set the default version
+default[:osmosis][:version] = "0.43.1"
diff --git a/cookbooks/osmosis/metadata.rb b/cookbooks/osmosis/metadata.rb
new file mode 100644 (file)
index 0000000..6439a55
--- /dev/null
@@ -0,0 +1,7 @@
+maintainer        "OpenStreetMap Administrators"
+maintainer_email  "admins@openstreetmap.org"
+license           "Apache 2.0"
+description       "Installs and configures osmosis"
+long_description  IO.read(File.join(File.dirname(__FILE__), 'README.rdoc'))
+version           "1.0.0"
+depends           "chef"
diff --git a/cookbooks/osmosis/recipes/default.rb b/cookbooks/osmosis/recipes/default.rb
new file mode 100644 (file)
index 0000000..42679ac
--- /dev/null
@@ -0,0 +1,64 @@
+#
+# Cookbook Name:: osmosis
+# Recipe:: default
+#
+# Copyright 2013, 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 "chef"
+
+osmosis_package = "osmosis-#{node[:osmosis][:version]}.zip"
+osmosis_directory = "/opt/osmosis-#{node[:osmosis][:version]}"
+
+Dir.glob("/var/cache/chef/osmosis-*.zip").each do |zip|
+  if zip != "/var/cache/chef/#{osmosis_package}"
+    file zip do
+      action :delete
+      backup false
+    end
+  end
+end
+
+directory osmosis_directory do
+  owner "root"
+  group "root"
+  mode 0755
+end
+
+execute "/var/cache/chef/#{osmosis_package}" do
+  action :nothing
+  command "unzip -q /var/cache/chef/#{osmosis_package}"
+  cwd osmosis_directory
+  user "root"
+  group "root"
+end
+
+remote_file "/var/cache/chef/#{osmosis_package}" do
+  action :create_if_missing
+  source "http://bretth.dev.openstreetmap.org/osmosis-build/#{osmosis_package}"
+  owner "root"
+  group "root"
+  mode 0644
+  backup false
+  notifies :run, "execute[/var/cache/chef/#{osmosis_package}]"
+end
+
+link "/usr/local/bin/osmosis" do
+  to "#{osmosis_directory}/bin/osmosis"
+end
+
+link "/usr/local/bin/osmosis-extract-apidb-0.6" do
+  to "#{osmosis_directory}/bin/osmosis-extract-apidb-0.6"
+end