From 08135d5cd647139d784b17627cda5cc5e26344d8 Mon Sep 17 00:00:00 2001 From: Alan Hamlett Date: Wed, 13 Nov 2013 18:05:44 -0800 Subject: [PATCH] set project name with .wakatime-project file. upgrade wakatime package to 0.4.10. --- plugin/packages/wakatime/HISTORY.rst | 6 +++ plugin/packages/wakatime/wakatime/__init__.py | 2 +- plugin/packages/wakatime/wakatime/project.py | 2 + .../wakatime/wakatime/projects/wakatime.py | 51 +++++++++++++++++++ 4 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 plugin/packages/wakatime/wakatime/projects/wakatime.py diff --git a/plugin/packages/wakatime/HISTORY.rst b/plugin/packages/wakatime/HISTORY.rst index 8603c9f..ba6dc3f 100644 --- a/plugin/packages/wakatime/HISTORY.rst +++ b/plugin/packages/wakatime/HISTORY.rst @@ -3,6 +3,12 @@ History ------- +0.4.10 (2013-11-13) ++++++++++++++++++++ + +- Placing .wakatime-project file in a folder will read the project's name from that file + + 0.4.9 (2013-10-27) ++++++++++++++++++ diff --git a/plugin/packages/wakatime/wakatime/__init__.py b/plugin/packages/wakatime/wakatime/__init__.py index d09b025..70e36f5 100644 --- a/plugin/packages/wakatime/wakatime/__init__.py +++ b/plugin/packages/wakatime/wakatime/__init__.py @@ -12,7 +12,7 @@ from __future__ import print_function __title__ = 'wakatime' -__version__ = '0.4.9' +__version__ = '0.4.10' __author__ = 'Alan Hamlett' __license__ = 'BSD' __copyright__ = 'Copyright 2013 Alan Hamlett' diff --git a/plugin/packages/wakatime/wakatime/project.py b/plugin/packages/wakatime/wakatime/project.py index 783f2cb..e27a219 100644 --- a/plugin/packages/wakatime/wakatime/project.py +++ b/plugin/packages/wakatime/wakatime/project.py @@ -12,6 +12,7 @@ import logging import os +from .projects.wakatime import WakaTime from .projects.git import Git from .projects.mercurial import Mercurial from .projects.subversion import Subversion @@ -20,6 +21,7 @@ from .projects.subversion import Subversion log = logging.getLogger(__name__) PLUGINS = [ + WakaTime, Git, Mercurial, Subversion, diff --git a/plugin/packages/wakatime/wakatime/projects/wakatime.py b/plugin/packages/wakatime/wakatime/projects/wakatime.py new file mode 100644 index 0000000..1dd92ef --- /dev/null +++ b/plugin/packages/wakatime/wakatime/projects/wakatime.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +""" + wakatime.projects.wakatime + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Information from a .wakatime-project file about the project for + a given file. + + :copyright: (c) 2013 Alan Hamlett. + :license: BSD, see LICENSE for more details. +""" + +import logging +import os + +from .base import BaseProject + + +log = logging.getLogger(__name__) + + +class WakaTime(BaseProject): + + def process(self): + self.config = self._find_config(self.path) + if self.config: + return True + return False + + def name(self): + project_name = None + try: + with open(self.config) as fh: + project_name = fh.readline().strip() + except IOError as e: + log.exception("Exception:") + return project_name + + def branch(self): + return None + + def _find_config(self, path): + path = os.path.realpath(path) + if os.path.isfile(path): + path = os.path.split(path)[0] + if os.path.isfile(os.path.join(path, '.wakatime-project')): + return os.path.join(path, '.wakatime-project') + split_path = os.path.split(path) + if split_path[1] == '': + return None + return self._find_config(split_path[0])