From 7e434ecbb4c136cbb0ba3a1e57c3c4e087873b1f Mon Sep 17 00:00:00 2001 From: John Landis Date: Thu, 17 May 2018 16:35:39 -0400 Subject: [PATCH] Move newlines out of quoted header and footer. Match carriage return along with newline in hosts file pattern. --- lib/vagrant-hostmanager/hosts_file/updater.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/vagrant-hostmanager/hosts_file/updater.rb b/lib/vagrant-hostmanager/hosts_file/updater.rb index 4ba7d19..ba8f38b 100644 --- a/lib/vagrant-hostmanager/hosts_file/updater.rb +++ b/lib/vagrant-hostmanager/hosts_file/updater.rb @@ -88,8 +88,8 @@ def update_file(file, resolving_machine = nil, include_id = true, line_endings) def update_content(file_content, resolving_machine, include_id, line_endings) id = include_id ? " id: #{read_or_create_id}" : "" - header = "## vagrant-hostmanager-start#{id}\n" - footer = "## vagrant-hostmanager-end\n" + header = "## vagrant-hostmanager-start#{id}" + footer = "## vagrant-hostmanager-end" body = get_machines .map { |machine| get_hosts_file_entry(machine, resolving_machine) } .join @@ -146,12 +146,12 @@ def get_new_content(header, footer, body, old_content, line_endings) if body.empty? block = "\n" else - block = "\n\n" + header + body + footer + "\n" + block = "\n\n" + header + "\n" + body + footer + "\n\n" end # Pattern for finding existing block header_pattern = Regexp.quote(header) footer_pattern = Regexp.quote(footer) - pattern = Regexp.new("\n*#{header_pattern}.*?#{footer_pattern}\n*", Regexp::MULTILINE) + pattern = Regexp.new("[\r\n]*#{header_pattern}.*?#{footer_pattern}[\r\n]*", Regexp::MULTILINE) # Replace existing block or append content = old_content.match(pattern) ? old_content.sub(pattern, block) : old_content.rstrip + block if line_endings == "crlf"