Handle WindowsError when can't create .pioenvs directory

This commit is contained in:
Ivan Kravets
2016-08-26 01:42:05 +03:00
parent 6ff99e4ddd
commit de62e5082e
2 changed files with 12 additions and 8 deletions

View File

@@ -63,7 +63,7 @@ def cli(ctx, # pylint: disable=R0913,R0914
click.secho(
"Can not remove temporary directory `%s`. Please remove "
"`.pioenvs` directory from the project manually to avoid "
"build issues" % util.get_projectpioenvs_dir(),
"build issues" % util.get_projectpioenvs_dir(force=True),
fg="yellow")
config = util.load_project_config()

View File

@@ -218,18 +218,22 @@ def get_projecttest_dir():
"test"))
def get_projectpioenvs_dir():
def get_projectpioenvs_dir(force=False):
path = _get_projconf_option_dir("envs_dir",
join(get_project_dir(), ".pioenvs"))
if not isdir(path):
os.makedirs(path)
dontmod_path = join(path, "do-not-modify-files-here.url")
if not isfile(dontmod_path):
with open(dontmod_path, "w") as fp:
fp.write("""
try:
if not isdir(path):
os.makedirs(path)
dontmod_path = join(path, "do-not-modify-files-here.url")
if not isfile(dontmod_path):
with open(dontmod_path, "w") as fp:
fp.write("""
[InternetShortcut]
URL=http://docs.platformio.org/en/stable/projectconf.html#envs-dir
""")
except Exception as e:
if not force:
raise Exception(e)
return path