rana-cli/wakatime/project.py

46 lines
1.1 KiB
Python
Raw Normal View History

2013-07-06 07:51:09 +00:00
# -*- coding: utf-8 -*-
"""
wakatime.project
~~~~~~~~~~~~~~~~
Returns a project for the given file.
:copyright: (c) 2013 Alan Hamlett.
:license: BSD, see LICENSE for more details.
"""
import logging
import os
from .projects.git import Git
from .projects.mercurial import Mercurial
from .projects.projectmap import ProjectMap
2013-07-06 07:51:09 +00:00
from .projects.subversion import Subversion
from .projects.wakatime import WakaTime
2013-07-06 07:51:09 +00:00
log = logging.getLogger('WakaTime')
2013-07-06 07:51:09 +00:00
# List of plugin classes to find a project for the current file path.
# Project plugins will be processed with priority in the order below.
2013-07-06 07:51:09 +00:00
PLUGINS = [
WakaTime,
2013-11-14 08:52:00 +00:00
ProjectMap,
2013-07-06 07:51:09 +00:00
Git,
Mercurial,
Subversion,
]
def find_project(path, configs=None):
2013-07-06 07:51:09 +00:00
for plugin in PLUGINS:
plugin_name = plugin.__name__.lower()
plugin_configs = None
if configs and configs.has_section(plugin_name):
plugin_configs = dict(configs.items(plugin_name))
project = plugin(path, configs=plugin_configs)
if project.process():
2013-07-06 07:51:09 +00:00
return project
return None