From 4c8c261ab4d57fe3fb3f6d0c93f9214ba30aaac9 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Mon, 28 Dec 2020 20:12:53 +0200 Subject: [PATCH] Raise an exception when trying to pack a package from tar.gz on Windows // Resolve #3776 --- platformio/package/pack.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/platformio/package/pack.py b/platformio/package/pack.py index 164ce96c..66dff1d5 100644 --- a/platformio/package/pack.py +++ b/platformio/package/pack.py @@ -20,8 +20,8 @@ import tarfile import tempfile from platformio import fs -from platformio.compat import ensure_python3 -from platformio.package.exception import PackageException +from platformio.compat import WINDOWS, ensure_python3 +from platformio.package.exception import PackageException, UserSideException from platformio.package.manifest.parser import ManifestFileType, ManifestParserFactory from platformio.package.manifest.schema import ManifestSchema from platformio.package.meta import PackageItem @@ -117,6 +117,12 @@ class PackagePacker(object): # if zip/tar.gz -> unpack to tmp dir if not os.path.isdir(src): + if WINDOWS: + raise UserSideException( + "Packaging from an archive does not work on Windows OS. Please " + "extract data from `%s` manually and pack a folder instead" + % src + ) with FileUnpacker(src) as fu: assert fu.unpack(tmp_dir, silent=True) src = tmp_dir