def _match(root, prefix): for dirpath, dirnames, filenames in os.walk(root): for d in dirnames: if d.startswith(prefix): yield d, os.path.join(dirpath, d) if not startswith(os.path.basename(dirpath), (prefix)): for f in filenames: if startswith(f, prefix): yield dirpath, os.path.join(dirpath, f) break
def match(root, prefix): paths = [] for dirpath, dirnames, filenames in os.walk(root): for d in dirnames: if d.startswith(prefix): paths.append(os.path.join(dirpath, d)) for f in filenames: if startswith(f, prefix): paths.append(os.path.join(dirpath, f)) return sorted(paths)
def get_format_string(name, user, context): if name and 'commits'.startswith(name): return _COMMIT if name and 'diffs'.startswith(name): return _DIFF if name.isdigit(): context['number'] = int(name) return PULL if name and 'pulls'.startswith(name): if user == Settings.PROJECT_USER: return Pulls.pull_urls()[0] if user == Settings.USER: branch_name = '%s:%s' % (user, Git.branch()) for number, pull in Git.pulls().items(): if pull.branch == branch_name: context['number'] = number return PULL else: return _NEW_PULL raise ValueError("Can't pull for user %s." % user) if name and 'root'.startswith(name): name = GitRoot.root() full_path = os.getcwd() if name: path, f = os.path.split(name) full_path = os.path.join(full_path, path) if not os.path.exists(full_path): raise ValueError("Path %s doesn't exist." % full_path) if f: for p in os.listdir(full_path): if startswith(p, f): full_path = os.path.join(full_path, p) break else: raise ValueError("Can't find file matching " + name) if user != Settings.USER: context['branch'] = Project.settings.get('base_branch', 'develop') context['path'] = os.path.relpath(full_path, GitRoot.ROOT) return _URL
def get_url(): full_path = os.getcwd() if name: path, f = os.path.split(name) full_path = os.path.join(full_path, path) if not os.path.exists(full_path): raise ValueError("Path %s doesn't exist." % full_path) if f: for p in os.listdir(full_path): if startswith(p, f): full_path = os.path.join(full_path, p) break else: raise ValueError("Can't find file matching " + name) context['path'] = os.path.relpath(full_path, GitRoot.ROOT) return _URL