1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "mojo/tools/package_manager/unpacker.h"
6
7#include "base/files/file_util.h"
8#include "base/logging.h"
9#include "third_party/zlib/google/zip.h"
10
11namespace mojo {
12
13Unpacker::Unpacker() {
14}
15
16Unpacker::~Unpacker() {
17  if (!dir_.empty())
18    DeleteFile(dir_, true);
19}
20
21bool Unpacker::Unpack(const base::FilePath& zip_file) {
22  DCHECK(zip_file_.empty());
23  zip_file_ = zip_file;
24
25  DCHECK(dir_.empty());
26  if (!CreateNewTempDirectory(base::FilePath::StringType(), &dir_))
27    return false;
28  if (!zip::Unzip(zip_file, dir_)) {
29    dir_ = base::FilePath();
30    return false;
31  }
32  return true;
33}
34
35}  // namespace mojo
36