summaryrefslogtreecommitdiffstats
path: root/src/environment.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/environment.rs')
-rw-r--r--src/environment.rs15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/environment.rs b/src/environment.rs
index 5d81585..6504434 100644
--- a/src/environment.rs
+++ b/src/environment.rs
@@ -74,15 +74,18 @@ pub async fn get_up_to_date_prefix(
if frozen && locked {
miette::bail!("Frozen and Locked can't be true at the same time, as using frozen will ignore the locked variable.");
}
- let lock_file = load_lock_file(project).await?;
- let lock_file = if frozen || lock_file_up_to_date(project, &lock_file)? {
- lock_file
- } else {
+ if frozen && !project.lock_file_path().is_file() {
+ miette::bail!("No lockfile available, can't do a frozen installation.");
+ }
+
+ let mut lock_file = load_lock_file(project).await?;
+
+ if !frozen && !lock_file_up_to_date(project, &lock_file)? {
if locked {
miette::bail!("Lockfile not up-to-date with the project");
}
- update_lock_file(project, lock_file, None).await?
- };
+ lock_file = update_lock_file(project, lock_file, None).await?
+ }
// Update the environment
update_prefix(