// Copyright 2018 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 "chrome/chrome_cleaner/pup_data/pup_disk_util.h"

#include "base/files/file_enumerator.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/logging.h"
#include "chrome/chrome_cleaner/os/disk_util.h"

namespace chrome_cleaner {

void CollectPathsRecursively(const base::FilePath& file_path,
                             PUPData::PUP* pup) {
  DCHECK(pup);

  // Avoid enumerating the folder content if the folder is already in the pup's
  // disk footprints.
  if (!pup->AddDiskFootprint(file_path))
    return;

  base::FileEnumerator file_enum(
      file_path, true,
      base::FileEnumerator::FILES | base::FileEnumerator::DIRECTORIES);
  for (base::FilePath file = file_enum.Next(); !file.empty();
       file = file_enum.Next()) {
    pup->AddDiskFootprint(file);
  }
}

bool CollectPathsRecursivelyWithLimits(const base::FilePath& file_path,
                                       size_t max_files,
                                       size_t max_filesize,
                                       bool allow_folders,
                                       PUPData::PUP* pup) {
  return CollectPathsRecursivelyWithLimits(file_path, max_files, max_filesize,
                                           allow_folders,
                                           &pup->expanded_disk_footprints);
}

}  // namespace chrome_cleaner
