# Verify that a given manifest is valid according to
# https://arvados.org/projects/arvados/wiki/Keep_manifest_format
def self.validate! manifest
+ raise ArgumentError.new "No manifest found" if !manifest
+
+ return true if manifest.empty?
+
raise ArgumentError.new "Invalid manifest: does not end with newline" if !manifest.end_with?("\n")
line_count = 0
manifest.each_line do |line|
end
[
+ [false, nil, "No manifest found"],
+ [true, ""],
+ [false, " ", "Invalid manifest: does not end with newline"],
[true, ". d41d8cd98f00b204e9800998ecf8427e 0:0:abc.txt\n"],
[true, ". d41d8cd98f00b204e9800998ecf8427e+0 0:0:abc.txt\n"],
[true, ". d41d8cd98f00b204e9800998ecf8427e a41d8cd98f00b204e9800998ecf8427e+0 0:0:abc.txt\n"], # 2 locators