68
69
70
71
72
73
74
75
76
77
|
# File 'lib/specinfra/command/base/file.rb', line 68
def check_contains_lines(file, expected_lines, from=nil, to=nil)
require 'digest/md5'
from ||= '1'
to ||= '$'
sed = "sed -n #{escape(from)},#{escape(to)}p #{escape(file)}"
head_line = expected_lines.first.chomp
lines_checksum = Digest::MD5.hexdigest(expected_lines.map(&:chomp).join("\n") + "\n")
afterwards_length = expected_lines.length - 1
"#{sed} | grep -A #{escape(afterwards_length)} -F -- #{escape(head_line)} | md5sum | grep -qiw -- #{escape(lines_checksum)}"
end
|