aboutsummaryrefslogtreecommitdiff
path: root/catapult/devil/devil/utils/host_utils.py
blob: 2918e06d946c22954bf4b9524cce8a2efdbc9d93 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 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 logging
import os


def GetRecursiveDiskUsage(path):
  """Returns the disk usage in bytes of |path|. Similar to `du -sb |path|`."""

  def get_size(filepath):
    try:
      return os.path.getsize(filepath)
    except OSError:
      logging.warning('File or directory no longer found: %s', filepath)
      return 0

  running_size = get_size(path)
  if os.path.isdir(path):
    for root, dirs, files in os.walk(path):
      running_size += sum(
          [get_size(os.path.join(root, f)) for f in files + dirs])
  return running_size