Niall Napier avatar Niall Napier committed d51fa1e

Initial version of the Hg cookbook.

Comments (0)

Files changed (5)

cookbooks/hg/README.rdoc

+= DESCRIPTION:
+
+hg is a cookbook to allow for the installation of Mercurial version control system and provide resources that allow interaction with hg repositories.

cookbooks/hg/metadata.rb

+maintainer       "Napes."
+maintainer_email "chef-hg@napes.co.uk"
+license          "Apache 2.0"
+description      "Installs/Configures Hg (Mercurial)"
+long_description IO.read(File.join(File.dirname(__FILE__), 'README.rdoc'))
+version          "0.1"

cookbooks/hg/providers/default.rb

+action :sync do
+  execute "clone repository" do    
+    not_if "hg identify #{new_resource.path}"
+    command "hg clone -e 'ssh -i #{new_resource.key} -o StrictHostKeyChecking=no' -r #{new_resource.reference} #{new_resource.repository} #{new_resource.path}"
+  end
+  execute "sync repository" do
+    command "hg pull -e 'ssh -i #{new_resource.key} -o StrictHostKeyChecking=no' -r #{new_resource.reference} #{new_resource.path}"
+    command "cd #{new_resource.path} && hg update -r #{new_resource.reference}"
+  end
+end
+ 
+action :clone do
+  execute "clone repository" do
+    not_if "hg identify #{new_resource.path}"
+    command "hg clone -e 'ssh -i #{new_resource.key} -o StrictHostKeyChecking=no' -r #{new_resource.reference} #{new_resource.repository} #{new_resource.path}"
+  end
+end
+

cookbooks/hg/recipes/default.rb

+# Author:: Napes. (chef-hg@napes.co.uk)
+# Cookbook Name:: hg
+# Recipe:: default
+#
+# Copyright 2011, Napes.
+#
+# 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.
+
+package "mercurial" do
+    action :install
+end

cookbooks/hg/resources/default.rb

+actions :sync, :clone
+
+attribute :path, :kind_of => String, :name_attribute => true
+attribute :repository, :kind_of => String
+attribute :reference, :kind_of => [Integer, String]
+attribute :key, :kind_of => String
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.