Cleanup automatically .pioenvs when platformio.ini has been changed // Issue #74

This commit is contained in:
Ivan Kravets
2015-02-14 00:12:16 +02:00
parent 2e90ab8092
commit ae50b9212f

View File

@ -1,12 +1,14 @@
# Copyright (C) Ivan Kravets <me@ikravets.com> # Copyright (C) Ivan Kravets <me@ikravets.com>
# See LICENSE for details. # See LICENSE for details.
from os.path import getmtime, join
from shutil import rmtree
import click import click
from platformio import app, exception, telemetry from platformio import app, exception, telemetry, util
from platformio.commands.install import cli as cmd_install from platformio.commands.install import cli as cmd_install
from platformio.platforms.base import PlatformFactory from platformio.platforms.base import PlatformFactory
from platformio.util import get_project_config
@click.command("run", short_help="Process project environments") @click.command("run", short_help="Process project environments")
@ -16,7 +18,7 @@ from platformio.util import get_project_config
@click.pass_context @click.pass_context
def cli(ctx, environment, target, upload_port): def cli(ctx, environment, target, upload_port):
config = get_project_config() config = util.get_project_config()
if not config.sections(): if not config.sections():
raise exception.ProjectEnvsNotAvailable() raise exception.ProjectEnvsNotAvailable()
@ -25,6 +27,11 @@ def cli(ctx, environment, target, upload_port):
if unknown: if unknown:
raise exception.UnknownEnvNames(", ".join(unknown)) raise exception.UnknownEnvNames(", ".join(unknown))
# remove ".pioenvs" if project config is modified
if (getmtime(join(util.get_project_dir(), "platformio.ini")) >
getmtime(util.get_pioenvs_dir())):
rmtree(util.get_pioenvs_dir())
for section in config.sections(): for section in config.sections():
# skip main configuration section # skip main configuration section
if section == "platformio": if section == "platformio":