forked from platformio/platformio-core
Ensure that copytree preserves symlinks
This commit is contained in:
2
docs
2
docs
Submodule docs updated: d6d6a519d9...d8c82a5d44
@@ -128,7 +128,9 @@ if (
|
|||||||
click.secho(
|
click.secho(
|
||||||
"There is a known issue with Python 3.8+ and mapped network drives on "
|
"There is a known issue with Python 3.8+ and mapped network drives on "
|
||||||
"Windows.\nPlease downgrade Python to the latest 3.7. More details at:\n"
|
"Windows.\nPlease downgrade Python to the latest 3.7. More details at:\n"
|
||||||
"https://github.com/platformio/platformio-core/issues/3417", fg="yellow")
|
"https://github.com/platformio/platformio-core/issues/3417",
|
||||||
|
fg="yellow",
|
||||||
|
)
|
||||||
|
|
||||||
if env.subst("$BUILD_CACHE_DIR"):
|
if env.subst("$BUILD_CACHE_DIR"):
|
||||||
if not isdir(env.subst("$BUILD_CACHE_DIR")):
|
if not isdir(env.subst("$BUILD_CACHE_DIR")):
|
||||||
|
@@ -21,8 +21,8 @@ import requests.adapters
|
|||||||
from requests.packages.urllib3.util.retry import Retry # pylint:disable=import-error
|
from requests.packages.urllib3.util.retry import Retry # pylint:disable=import-error
|
||||||
|
|
||||||
from platformio import __pioaccount_api__, app
|
from platformio import __pioaccount_api__, app
|
||||||
from platformio.exception import InternetIsOffline
|
|
||||||
from platformio.commands.account import exception
|
from platformio.commands.account import exception
|
||||||
|
from platformio.exception import InternetIsOffline
|
||||||
|
|
||||||
|
|
||||||
class AccountClient(object):
|
class AccountClient(object):
|
||||||
|
@@ -107,7 +107,7 @@ class OSRPC(object):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def copy(src, dst):
|
def copy(src, dst):
|
||||||
return shutil.copytree(src, dst)
|
return shutil.copytree(src, dst, symlinks=True)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def glob(pathnames, root=None):
|
def glob(pathnames, root=None):
|
||||||
|
@@ -300,7 +300,7 @@ class ProjectRPC(object):
|
|||||||
src_dir = config.get_optional_dir("src")
|
src_dir = config.get_optional_dir("src")
|
||||||
if os.path.isdir(src_dir):
|
if os.path.isdir(src_dir):
|
||||||
fs.rmtree(src_dir)
|
fs.rmtree(src_dir)
|
||||||
shutil.copytree(arduino_project_dir, src_dir)
|
shutil.copytree(arduino_project_dir, src_dir, symlinks=True)
|
||||||
return project_dir
|
return project_dir
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@@ -313,7 +313,7 @@ class ProjectRPC(object):
|
|||||||
AppRPC.load_state()["storage"]["projectsDir"],
|
AppRPC.load_state()["storage"]["projectsDir"],
|
||||||
time.strftime("%y%m%d-%H%M%S-") + os.path.basename(project_dir),
|
time.strftime("%y%m%d-%H%M%S-") + os.path.basename(project_dir),
|
||||||
)
|
)
|
||||||
shutil.copytree(project_dir, new_project_dir)
|
shutil.copytree(project_dir, new_project_dir, symlinks=True)
|
||||||
|
|
||||||
state = AppRPC.load_state()
|
state = AppRPC.load_state()
|
||||||
args = ["init"]
|
args = ["init"]
|
||||||
|
@@ -475,7 +475,7 @@ class PkgInstallerMixin(object):
|
|||||||
self.unpack(_url, tmp_dir)
|
self.unpack(_url, tmp_dir)
|
||||||
else:
|
else:
|
||||||
fs.rmtree(tmp_dir)
|
fs.rmtree(tmp_dir)
|
||||||
shutil.copytree(_url, tmp_dir)
|
shutil.copytree(_url, tmp_dir, symlinks=True)
|
||||||
elif url.startswith(("http://", "https://")):
|
elif url.startswith(("http://", "https://")):
|
||||||
dlpath = self.download(url, tmp_dir, sha1)
|
dlpath = self.download(url, tmp_dir, sha1)
|
||||||
assert isfile(dlpath)
|
assert isfile(dlpath)
|
||||||
|
Reference in New Issue
Block a user