From 3c70babde47a3f9e8294a245ed1f74842cb11a9f Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Sun, 27 Jul 2014 22:35:40 +0300 Subject: [PATCH] Allowed to change default ".pioenvs" directory with global env "export $PIOENVS_DIR" --- platformio/builder/main.py | 6 ++++-- platformio/util.py | 9 +++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/platformio/builder/main.py b/platformio/builder/main.py index 335b2ccf..b9c05390 100644 --- a/platformio/builder/main.py +++ b/platformio/builder/main.py @@ -6,7 +6,8 @@ from os.path import isdir, join from SCons.Script import (DefaultEnvironment, Exit, SConscript, SConscriptChdir, Variables) -from platformio.util import get_home_dir, get_project_dir, get_source_dir +from platformio.util import (get_home_dir, get_pioenvs_dir, get_project_dir, + get_source_dir) # AllowSubstExceptions() @@ -37,13 +38,14 @@ DefaultEnvironment( PIOBUILDER_DIR=join(get_source_dir(), "builder"), PROJECT_DIR=get_project_dir(), + PIOENVS_DIR=get_pioenvs_dir(), PLATFORMIOHOME_DIR=get_home_dir(), PLATFORM_DIR=join("$PLATFORMIOHOME_DIR", "$PLATFORM"), PLATFORMFW_DIR=join("$PLATFORM_DIR", "frameworks", "$FRAMEWORK"), PLATFORMTOOLS_DIR=join("$PLATFORM_DIR", "tools"), - BUILD_DIR=join("$PROJECT_DIR", ".pioenvs", "$PIOENV"), + BUILD_DIR=join("$PIOENVS_DIR", "$PIOENV"), LIBSOURCE_DIRS=[ join("$PROJECT_DIR", "lib"), join("$PLATFORMFW_DIR", "libraries"), diff --git a/platformio/util.py b/platformio/util.py index a3ad8a11..234085e7 100644 --- a/platformio/util.py +++ b/platformio/util.py @@ -1,16 +1,17 @@ # Copyright (C) Ivan Kravets # See LICENSE for details. -from os import getcwd, listdir, utime from os import name as os_name +from os import getcwd, getenv, listdir, utime from os.path import dirname, expanduser, isfile, join, realpath from platform import architecture, system from subprocess import PIPE, Popen from time import sleep -from platformio.exception import NotPlatformProject from serial import Serial +from platformio.exception import GetSerialPortsError, NotPlatformProject + try: from configparser import ConfigParser except ImportError: @@ -33,6 +34,10 @@ def get_project_dir(): return getcwd() +def get_pioenvs_dir(): + return getenv("PIOENVS_DIR", join(get_project_dir(), ".pioenvs")) + + def get_project_config(): path = join(get_project_dir(), "platformio.ini") if not isfile(path):