Commit 0222bf6b by Sébastien Eustace

Avoid unnecessary operations when using lock

parent 271e9958
......@@ -27,7 +27,6 @@ the current directory, processes it, and locks the depdencies in the <comment>po
self.poetry.pool,
)
installer.update(True)
installer.execute_operations(False)
installer.lock()
return installer.run()
......@@ -47,6 +47,7 @@ class Installer:
self._dev_mode = True
self._develop = []
self._execute_operations = True
self._lock = False
self._whitelist = []
......@@ -111,6 +112,16 @@ class Installer:
return self
def lock(self): # type: () -> Installer
"""
Prepare the installer for locking only.
"""
self.update()
self.execute_operations(False)
self._lock = True
return self
def is_updating(self): # type: () -> bool
return self._update
......@@ -182,6 +193,12 @@ class Installer:
self._populate_local_repo(local_repo, ops, locked_repository)
if self._lock:
# If we are only in lock mode, no need to go any further
self._write_lock_file(local_repo)
return 0
root = self._package
if not self.is_dev_mode():
root = root.clone()
......@@ -273,19 +290,20 @@ class Installer:
)
# Writing lock before installing
self._write_lock_file(local_repo)
self._io.writeln("")
for op in ops:
self._execute(op)
def _write_lock_file(self, repo): # type: (Repository) -> None
if self._update and self._write_lock:
updated_lock = self._locker.set_lock_data(
self._package, local_repo.packages
)
updated_lock = self._locker.set_lock_data(self._package, repo.packages)
if updated_lock:
self._io.writeln("")
self._io.writeln("<info>Writing lock file</>")
self._io.writeln("")
for op in ops:
self._execute(op)
def _execute(self, operation): # type: (Operation) -> None
"""
Execute a given operation.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment