docs: def prepare_writeable_dir(tree):
      ''' make sure a directory exists and is writeable '''
  
      if tree != '/':
          tree = os.path.realpath(os.path.expanduser(tree))
      if not os.path.exists(tree):
          try:
              os.makedirs(tree)
          except (IOError, OSError), e:
              exit("Could not make dir %s: %s" % (tree, e))
      if not os.access(tree, os.W_OK):
          exit("Cannot write to path %s" % tree)