Automatically change dir to project for RPC "config_call"; add "envs" and "descrption" for project entities

This commit is contained in:
Ivan Kravets
2019-10-19 12:42:43 +03:00
parent f78a1a7b15
commit d771816b02

View File

@ -34,6 +34,9 @@ from platformio.project.helpers import is_platformio_project
class ProjectRPC(object):
@staticmethod
def config_call(path, method, *args):
if isfile(path):
with fs.cd(os.path.dirname(path)):
return getattr(ProjectConfig(path), method)(*args)
return getattr(ProjectConfig(path), method)(*args)
@staticmethod
@ -41,10 +44,11 @@ class ProjectRPC(object):
def _get_project_data():
data = {"boards": [], "envLibdepsDirs": [], "libExtraDirs": []}
config = ProjectConfig()
libdeps_dir = config.get_optional_dir("libdeps")
data["envs"] = config.envs()
data["description"] = config.get("platformio", "description")
data["libExtraDirs"].extend(config.get("platformio", "lib_extra_dirs", []))
libdeps_dir = config.get_optional_dir("libdeps")
for section in config.sections():
if not section.startswith("env:"):
continue
@ -94,6 +98,8 @@ class ProjectRPC(object):
"name": _path_to_name(project_dir),
"modified": int(getmtime(project_dir)),
"boards": boards,
"description": data.get("description"),
"envs": data.get("envs", []),
"envLibStorages": [
{"name": basename(d), "path": d}
for d in data.get("envLibdepsDirs", [])