| // 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. |
| |
| #include "mojo/tools/package_manager/unpacker.h" |
| |
| #include "base/files/file_util.h" |
| #include "base/logging.h" |
| #include "third_party/zlib/google/zip.h" |
| |
| namespace mojo { |
| |
| Unpacker::Unpacker() { |
| } |
| |
| Unpacker::~Unpacker() { |
| if (!dir_.empty()) |
| DeleteFile(dir_, true); |
| } |
| |
| bool Unpacker::Unpack(const base::FilePath& zip_file) { |
| DCHECK(zip_file_.empty()); |
| zip_file_ = zip_file; |
| |
| DCHECK(dir_.empty()); |
| if (!CreateNewTempDirectory(base::FilePath::StringType(), &dir_)) |
| return false; |
| if (!zip::Unzip(zip_file, dir_)) { |
| dir_ = base::FilePath(); |
| return false; |
| } |
| return true; |
| } |
| |
| } // namespace mojo |