Implement ProjectMap plugin

This commit is contained in:
3onyc 2013-11-14 09:52:00 +01:00
parent 731ce02a59
commit 81fe41409a
2 changed files with 60 additions and 0 deletions

View file

@ -13,6 +13,7 @@ import logging
import os import os
from .projects.wakatime import WakaTime from .projects.wakatime import WakaTime
from .projects.projectmap import ProjectMap
from .projects.git import Git from .projects.git import Git
from .projects.mercurial import Mercurial from .projects.mercurial import Mercurial
from .projects.subversion import Subversion from .projects.subversion import Subversion
@ -22,6 +23,7 @@ log = logging.getLogger(__name__)
PLUGINS = [ PLUGINS = [
WakaTime, WakaTime,
ProjectMap,
Git, Git,
Mercurial, Mercurial,
Subversion, Subversion,

View file

@ -0,0 +1,58 @@
# -*- coding: utf-8 -*-
"""
wakatime.projects.projectmap
~~~~~~~~~~~~~~~~~~~~~~~~~~
Information from ~/.waka-projectmap mapping folders (relative to home folder)
to project names
:author: 3onyc
:license: BSD, see LICENSE for more details.
"""
import logging
import os
from ..packages import simplejson as json
from .base import BaseProject
log = logging.getLogger(__name__)
class ProjectMap(BaseProject):
def process(self):
self.config = self._load_config()
if self.config:
log.debug(self.config)
return True
return False
def branch(self):
return None
def name(self):
for path in self._path_generator():
if path in self.config:
return self.config[path]
return None
def _load_config(self):
map_path = "%s/.waka-projectmap" % os.environ['HOME']
if os.path.isfile(map_path):
with open(map_path) as map_file:
try:
return json.load(map_file)
except (IOError, json.JSONDecodeError) as e:
log.exception("ProjectMap Exception: ")
return False
def _path_generator(self):
path = self.path.replace(os.environ['HOME'], '')
while path != os.path.dirname(path):
yield path
path = os.path.dirname(path)