Fix ProjectMap always returning true if it has a config section
This commit is contained in:
parent
5b9eb937ff
commit
b75570a589
1 changed files with 19 additions and 8 deletions
|
@ -12,6 +12,7 @@
|
|||
|
||||
import logging
|
||||
import os
|
||||
from functools import partial
|
||||
|
||||
from ..packages import simplejson as json
|
||||
|
||||
|
@ -23,22 +24,32 @@ log = logging.getLogger(__name__)
|
|||
|
||||
class ProjectMap(BaseProject):
|
||||
def process(self):
|
||||
if self.settings:
|
||||
return True
|
||||
|
||||
if not self.settings:
|
||||
return False
|
||||
|
||||
self.project = self._find_project()
|
||||
return self.project != None
|
||||
|
||||
def _find_project(self):
|
||||
has_option = partial(self.settings.has_option, 'projectmap')
|
||||
get_option = partial(self.settings.get, 'projectmap')
|
||||
paths = self._path_generator()
|
||||
|
||||
projects = map(get_option, filter(has_option, paths))
|
||||
return projects[0] if projects else None
|
||||
|
||||
def branch(self):
|
||||
return None
|
||||
|
||||
def name(self):
|
||||
for path in self._path_generator():
|
||||
if self.settings.has_option('projectmap', path):
|
||||
return self.settings.get('projectmap', path)
|
||||
|
||||
return None
|
||||
return self.project
|
||||
|
||||
def _path_generator(self):
|
||||
"""
|
||||
Generates paths from the current directory up to the user's home folder
|
||||
stripping anything in the path before the home path
|
||||
"""
|
||||
|
||||
path = self.path.replace(os.environ['HOME'], '')
|
||||
while path != os.path.dirname(path):
|
||||
yield path
|
||||
|
|
Loading…
Reference in a new issue