15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)# Copyright 2014 The Chromium Authors. All rights reserved.
25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)# found in the LICENSE file.
45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)import os
65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)def GetRecursiveDiskUsage(path):
95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  """Returns the disk usage in bytes of |path|. Similar to `du -sb |path|`."""
105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  running_size = os.path.getsize(path)
115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  if os.path.isdir(path):
125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    for root, dirs, files in os.walk(path):
135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)      running_size += sum([os.path.getsize(os.path.join(root, f))
145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)                           for f in files + dirs])
155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)  return running_size
165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)