Mercurial > piecrust2
view piecrust/pathutil.py @ 38:091f99bfbe44
Fix running `chef` outside of a website. Slightly better error reporting.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Thu, 21 Aug 2014 10:56:17 -0700 |
parents | 485682a6de50 |
children | 52e4d9a1f917 |
line wrap: on
line source
import re import os import os.path re_terminal_path = re.compile(r'[/\\]|(\w\:)') class SiteNotFoundError(Exception): def __init__(self, root=None, msg=None): if not root: root = os.getcwd() full_msg = ("No PieCrust website in '%s' " "('config.yml' not found!)" % root) if msg: full_msg += ": " + msg else: full_msg += "." Exception.__init__(self, full_msg) def find_app_root(cwd=None): if cwd is None: cwd = os.getcwd() while not os.path.isfile(os.path.join(cwd, 'config.yml')): cwd = os.path.dirname(cwd) if not cwd or re_terminal_path.match(cwd): raise SiteNotFoundError(cwd) return cwd