From d37c6fcdce7c08c380c1ad567b9efac965a29ee6 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Thu, 4 May 2017 21:02:32 +0300 Subject: [PATCH] Use root directory for PIO Home when path contains non-ascii characters // Resolve #951 Resolve #952 --- HISTORY.rst | 5 ++++- platformio/util.py | 16 ++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/HISTORY.rst b/HISTORY.rst index 47fc482c..24dbb02e 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -28,6 +28,9 @@ PlatformIO 3.0 * Handle ``env_default`` in `Project Configuration File "platformio.ini" `__ when re-initializing a project (`issue #950 `_) +* Use root directory for PIO Home when path contains non-ascii characters + (`issue #951 `_, + `issue #952 `_) * Don't warn about known ``boards_dir`` option (`pull #949 `_) * Fixed infinite dependency installing when repository consists of multiple @@ -44,7 +47,7 @@ PlatformIO 3.0 * Development platform `Atmel AVR `__ + ATTiny Support (1634, x313, x4, x41, x5, x61, x7, x8) - (`issue #47 `_) + (`issue #47 `__) + New boards: Dwenguino, nicai-systems BOB3 coding bot, NIBO 2 robot, NIBObee robot + AVRDude TCP upload port (``net:host:port``) diff --git a/platformio/util.py b/platformio/util.py index ddeccc5e..85071260 100644 --- a/platformio/util.py +++ b/platformio/util.py @@ -220,15 +220,19 @@ def get_project_optional_dir(name, default=None): def get_home_dir(): home_dir = get_project_optional_dir("home_dir", join(expanduser("~"), ".platformio")) - + win_home_dir = None if "windows" in get_systype(): - try: - home_dir.encode("utf8") - except UnicodeDecodeError: - home_dir = splitdrive(home_dir)[0] + "\\.platformio" + win_home_dir = splitdrive(home_dir)[0] + "\\.platformio" + if isdir(win_home_dir): + home_dir = win_home_dir if not isdir(home_dir): - os.makedirs(home_dir) + try: + os.makedirs(home_dir) + except WindowsError: + if win_home_dir: + os.makedirs(win_home_dir) + home_dir = win_home_dir assert isdir(home_dir) return home_dir