diff --git a/rhodecode/lib/vcs/utils/paths.py b/rhodecode/lib/vcs/utils/paths.py new file mode 100644 --- /dev/null +++ b/rhodecode/lib/vcs/utils/paths.py @@ -0,0 +1,36 @@ +import os + +abspath = lambda * p: os.path.abspath(os.path.join(*p)) + + +def get_dirs_for_path(*paths): + """ + Returns list of directories, including intermediate. + """ + for path in paths: + head = path + while head: + head, tail = os.path.split(head) + if head: + yield head + else: + # We don't need to yield empty path + break + + +def get_dir_size(path): + root_path = path + size = 0 + for path, dirs, files in os.walk(root_path): + for f in files: + try: + size += os.path.getsize(os.path.join(path, f)) + except OSError: + pass + return size + +def get_user_home(): + """ + Returns home path of the user. + """ + return os.getenv('HOME', os.getenv('USERPROFILE'))