in lib/omnibus/builder.rb [219:253]
def patch(options = {})
source = options.delete(:source)
plevel = options.delete(:plevel) || 1
target = options.delete(:target)
locations, patch_path = find_file("config/patches", source)
unless patch_path
raise MissingPatch.new(source, locations)
end
clean_patch_path = patch_path
if windows?
clean_patch_path = Pathname.new(patch_path).relative_path_from(
Pathname.new(software.project_dir)
).to_s
end
if target
patch_cmd = "cat #{clean_patch_path} | patch -p#{plevel} #{target}"
else
patch_cmd = "patch -p#{plevel} -i #{clean_patch_path}"
end
patches << patch_path
options[:in_msys_bash] = true
build_commands << BuildCommand.new("Apply patch `#{source}'") do
shellout!(patch_cmd, **options)
end
end