Select Badges

Select Supported Platforms

Select Status

RSS

m-patch (5) Versions 0.6.0

m-patch Cookbook

Policyfile
Berkshelf
Knife
cookbook 'm-patch', '~> 0.6.0', :supermarket
cookbook 'm-patch', '~> 0.6.0'
knife supermarket install m-patch
knife supermarket download m-patch
README
Dependencies

m-patch

This is a forked cookbook from the supermarket. The reason we forked this cookbook is due to the deprecation warnings on Chef 13 and incompatibility with Chef 14. The official cookbook appears to be abandoned since 2016.

Original README below:

Patch

Build Status Build Status

Some handy Chef resources for when you want to append, replace or delete and lines in files.

WARNING: Minimum Chef version required is 12.5

replace

Search the file line by line and match each line with the given regex if matched, replace the match (all occurances) with the replace parameter.

replace "/etc/sysctl.conf" do
    replace "#net.ipv4.ip_forward=1"
    with    "net.ipv4.ip_forward=1"
end

Or with a regex:

replace "/etc/sysctl.conf" do
    replace /^.*ip_forward=.*$/
    with    "net.ipv4.ip_forward=1"
end

replace_line

Search the file line by line and match each line with the given regex if matched, replace the whole line with the replace parameter.

replace_line "/etc/sysctl.conf" do
    replace "vm.swappiness"
    with    "vm.swappiness=60"
end

Or with a regex:

replace_line "/etc/sysctl.conf" do
    replace /.*vm.swappiness.*/
    with    "vm.swappiness=60"
end

append_line

Append a line to a file. It will not append the line if it is in the file already.

append_line "/etc/sysctl.conf" do
    line "vm.swappiness=60"
end

inser_line_after

Append a line to a file. It will not append the line if it is in the file already.

insert_line_after "/etc/sysctl.conf" do
    line "vm.swappiness=60"
    insert "net.ipv4.ip_forward = 1"
end

delete_line

Delete a line from a file.

delete_line "/etc/sysctl.conf" do
    line "vm.swappiness=60"
end

Or with a regex:

delete_line "/etc/sysctl.conf" do
    line /.*vm.swappiness.*/
end

Attributes

All resources support a path attribute to specify the location of the file if you have to do multiple operations on a file:

replace_line "unique_resource_name" do
    replace  "#net.ipv4.ip_forward=1"
    with     "net.ipv4.ip_forward=1"
    path     "/etc/sysctl.conf"
end

Testing

Basic chefspec testing has been added. Please include tests with your pull requests.

bundle install
rspec