You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.0 KiB
36 lines
1.0 KiB
# Copyright 2014 The Chromium Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
import gzip
|
|
import os
|
|
import time
|
|
import zipfile
|
|
|
|
|
|
def ArchiveFiles(host_files, output):
|
|
with zipfile.ZipFile(output, 'w', zipfile.ZIP_DEFLATED) as z:
|
|
for host_file in host_files:
|
|
z.write(host_file)
|
|
os.unlink(host_file)
|
|
|
|
def CompressFile(host_file, output):
|
|
with gzip.open(output, 'wb') as out, open(host_file, 'rb') as input_file:
|
|
out.write(input_file.read())
|
|
os.unlink(host_file)
|
|
|
|
def ArchiveData(trace_results, output):
|
|
with zipfile.ZipFile(output, 'w', zipfile.ZIP_DEFLATED) as z:
|
|
for result in trace_results:
|
|
trace_file = result.source_name + GetTraceTimestamp()
|
|
WriteDataToCompressedFile(result.raw_data, trace_file)
|
|
z.write(trace_file)
|
|
os.unlink(trace_file)
|
|
|
|
def WriteDataToCompressedFile(data, output):
|
|
with gzip.open(output, 'wb') as out:
|
|
out.write(data)
|
|
|
|
def GetTraceTimestamp():
|
|
return time.strftime('%Y-%m-%d-%H%M%S', time.localtime())
|