mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-31 18:44:27 +02:00
Better decoding SCons arguments
This commit is contained in:
@@ -22,7 +22,6 @@ import click
|
||||
import requests
|
||||
|
||||
from platformio import util
|
||||
from platformio.compat import PY2, get_filesystem_encoding
|
||||
from platformio.exception import (FDSHASumMismatch, FDSizeMismatch,
|
||||
FDUnrecognizedStatusCode)
|
||||
from platformio.proc import exec_command
|
||||
@@ -46,15 +45,11 @@ class FileDownloader(object):
|
||||
if disposition and "filename=" in disposition:
|
||||
self._fname = disposition[disposition.index("filename=") +
|
||||
9:].replace('"', "").replace("'", "")
|
||||
if PY2:
|
||||
self._fname = self._fname.encode("utf8")
|
||||
else:
|
||||
self._fname = [p for p in url.split("/") if p][-1]
|
||||
|
||||
self._fname = str(self._fname)
|
||||
self._destination = self._fname
|
||||
if dest_dir:
|
||||
if PY2:
|
||||
dest_dir = dest_dir.decode(get_filesystem_encoding())
|
||||
self.set_destination(join(dest_dir, self._fname))
|
||||
|
||||
def set_destination(self, destination):
|
||||
|
@@ -24,7 +24,8 @@ import click
|
||||
import semantic_version
|
||||
|
||||
from platformio import __version__, app, exception, util
|
||||
from platformio.compat import get_filesystem_encoding, string_types
|
||||
from platformio.compat import (get_filesystem_encoding, hashlib_encode_data,
|
||||
is_bytes)
|
||||
from platformio.managers.core import get_core_package_dir
|
||||
from platformio.managers.package import BasePkgManager, PackageManager
|
||||
from platformio.proc import (BuildAsyncPipe, copy_pythonpath_to_osenv,
|
||||
@@ -361,14 +362,13 @@ class PlatformRunMixin(object):
|
||||
|
||||
@staticmethod
|
||||
def encode_scons_arg(value):
|
||||
if isinstance(value, string_types):
|
||||
value = value.encode(get_filesystem_encoding())
|
||||
return base64.urlsafe_b64encode(value).decode()
|
||||
data = base64.urlsafe_b64encode(hashlib_encode_data(value))
|
||||
return data.decode() if is_bytes(data) else data
|
||||
|
||||
@staticmethod
|
||||
def decode_scons_arg(value):
|
||||
return base64.urlsafe_b64decode(value).decode(
|
||||
get_filesystem_encoding())
|
||||
def decode_scons_arg(data):
|
||||
value = base64.urlsafe_b64decode(data)
|
||||
return value.decode() if is_bytes(value) else value
|
||||
|
||||
def run(self, variables, targets, silent, verbose):
|
||||
assert isinstance(variables, dict)
|
||||
|
Reference in New Issue
Block a user