# Copyright (c) 2012 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 errno import os """Creates a directory and its parents (i.e. `mkdir -p`). If the directory already exists, does nothing.""" def mkdir_p(path): try: os.makedirs(path) except OSError as exc: if exc.errno == errno.EEXIST and os.path.isdir(path): pass else: raise """Creates or ovewrites a symlink from `link` to `target`.""" def symlink(target, link): mkdir_p(os.path.dirname(link)) tmp_link = link + '.tmp' try: os.remove(tmp_link) except OSError: pass os.symlink(target, tmp_link) os.rename(tmp_link, link)