mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-29 17:47:14 +02:00
Generate valid directory name when move package
This commit is contained in:
@ -170,6 +170,13 @@ class PkgInstallerMixin(object):
|
||||
fu = FileUnpacker(source_path, dest_dir)
|
||||
return fu.start()
|
||||
|
||||
@staticmethod
|
||||
def generate_install_dirname(manifest):
|
||||
name = manifest['name']
|
||||
if "id" in manifest:
|
||||
name += "_ID%d" % manifest['id']
|
||||
return name
|
||||
|
||||
def get_vcs_manifest_path(self, pkg_dir):
|
||||
for item in os.listdir(pkg_dir):
|
||||
if not isdir(join(pkg_dir, item)):
|
||||
@ -325,11 +332,8 @@ class PkgInstallerMixin(object):
|
||||
tmp_manifest = self.load_manifest(tmp_manifest_path)
|
||||
assert set(["name", "version"]) <= set(tmp_manifest.keys())
|
||||
|
||||
name = tmp_manifest['name']
|
||||
name = self.generate_install_dirname(tmp_manifest)
|
||||
pkg_dir = join(self.package_dir, name)
|
||||
if "id" in tmp_manifest:
|
||||
name += "_ID%d" % tmp_manifest['id']
|
||||
pkg_dir = join(self.package_dir, name)
|
||||
|
||||
# package should satisfy requirements
|
||||
if requirements:
|
||||
@ -604,7 +608,9 @@ class BasePkgManager(PkgRepoMixin, PkgInstallerMixin):
|
||||
# unfix package with the same name
|
||||
package_dir = self.get_package_dir(manifest['name'])
|
||||
if package_dir and "@" in package_dir:
|
||||
os.rename(package_dir, join(self.package_dir, manifest['name']))
|
||||
os.rename(package_dir,
|
||||
join(self.package_dir,
|
||||
self.generate_install_dirname(manifest)))
|
||||
self.reset_cache()
|
||||
|
||||
click.echo("[%s]" % click.style("OK", fg="green"))
|
||||
|
@ -126,7 +126,7 @@ def test_global_lib_uninstall(clirunner, validate_cliresult,
|
||||
validate_cliresult(result)
|
||||
items1 = [d.basename for d in isolated_pio_home.join("lib").listdir()]
|
||||
items2 = [
|
||||
"DHT22_ID58", "ArduinoJson_ID64@5.6.7", "ESPAsyncTCP_ID305",
|
||||
"DHT22_ID58", "ArduinoJson_ID64", "ESPAsyncTCP_ID305",
|
||||
"pubsubclient", "PJON", "rs485-nodeproto", "RadioHead_ID124"
|
||||
]
|
||||
assert set(items1) == set(items2)
|
||||
|
Reference in New Issue
Block a user