Merge branch '1965-fuse-support-directories'
[arvados.git] / services / api / app / models / collection.rb
index f6c8b26598ed78b99ac16a3b20d11c73692b0546..495b9fefe316339864d6c35dfd2cb18e74a3d20b 100644 (file)
@@ -65,8 +65,19 @@ class Collection < ArvadosModel
       @files = []
       return
     end
+
+    #normalized_manifest = ""
+    #IO.popen(['arv-normalize'], 'w+b') do |io|
+    #  io.write manifest_text
+    #  io.close_write
+    #  while buf = io.read(2**20)
+    #    normalized_manifest += buf
+    #  end
+    #end
+
     @data_size = 0
-    @files = []
+    tmp = {}
+
     manifest_text.split("\n").each do |stream|
       toks = stream.split(" ")
 
@@ -98,10 +109,22 @@ class Collection < ArvadosModel
               else $1.to_i(8).chr
               end
             end
-            @files << [stream, filename, re[2].to_i]
+            fn = stream + '/' + filename
+            i = re[2].to_i
+            if tmp[fn]
+              tmp[fn] += i
+            else
+              tmp[fn] = i
+            end
           end
         end
       end
+
+      @files = []
+      tmp.each do |k, v|
+        re = k.match(/^(.+)\/(.+)/)
+        @files << [re[1], re[2], v]
+      end
     end
   end