Raise an exception when trying to pack a package from tar.gz on Windows // Resolve #3776

This commit is contained in:
Ivan Kravets
2020-12-28 20:12:53 +02:00
parent 099bb3b9ff
commit 4c8c261ab4

View File

@ -20,8 +20,8 @@ import tarfile
import tempfile import tempfile
from platformio import fs from platformio import fs
from platformio.compat import ensure_python3 from platformio.compat import WINDOWS, ensure_python3
from platformio.package.exception import PackageException from platformio.package.exception import PackageException, UserSideException
from platformio.package.manifest.parser import ManifestFileType, ManifestParserFactory from platformio.package.manifest.parser import ManifestFileType, ManifestParserFactory
from platformio.package.manifest.schema import ManifestSchema from platformio.package.manifest.schema import ManifestSchema
from platformio.package.meta import PackageItem from platformio.package.meta import PackageItem
@ -117,6 +117,12 @@ class PackagePacker(object):
# if zip/tar.gz -> unpack to tmp dir # if zip/tar.gz -> unpack to tmp dir
if not os.path.isdir(src): 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: with FileUnpacker(src) as fu:
assert fu.unpack(tmp_dir, silent=True) assert fu.unpack(tmp_dir, silent=True)
src = tmp_dir src = tmp_dir