Skip to content

Commit

Permalink
Adjust error message with offline and frozen.
Browse files Browse the repository at this point in the history
  • Loading branch information
ehuss committed Jul 1, 2021
1 parent 4952979 commit dd8fa91
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 6 deletions.
7 changes: 2 additions & 5 deletions src/cargo/ops/lockfile.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,6 @@ pub fn write_pkg_lockfile(ws: &Workspace<'_>, resolve: &mut Resolve) -> CargoRes
}

if !ws.config().lock_update_allowed() {
if ws.config().offline() {
anyhow::bail!("can't update in the offline mode");
}

let flag = if ws.config().network_allowed() {
"--locked"
} else {
Expand All @@ -58,8 +54,9 @@ pub fn write_pkg_lockfile(ws: &Workspace<'_>, resolve: &mut Resolve) -> CargoRes
anyhow::bail!(
"the lock file {} needs to be updated but {} was passed to prevent this\n\
If you want to try to generate the lock file without accessing the network, \
use the --offline flag.",
remove the {} flag and use --offline instead.",
ws.root().to_path_buf().join("Cargo.lock").display(),
flag,
flag
);
}
Expand Down
3 changes: 2 additions & 1 deletion tests/testsuite/lockfile_compat.rs
Original file line number Diff line number Diff line change
Expand Up @@ -511,7 +511,8 @@ fn locked_correct_error() {
"\
[UPDATING] `[..]` index
error: the lock file [CWD]/Cargo.lock needs to be updated but --locked was passed to prevent this
If you want to try to generate the lock file without accessing the network, use the --offline flag.
If you want to try to generate the lock file without accessing the network, \
remove the --locked flag and use --offline instead.
",
)
.run();
Expand Down
13 changes: 13 additions & 0 deletions tests/testsuite/offline.rs
Original file line number Diff line number Diff line change
Expand Up @@ -685,3 +685,16 @@ retry without the offline flag.
)
.run();
}

#[cargo_test]
fn offline_and_frozen_and_no_lock() {
let p = project().file("src/lib.rs", "").build();
p.cargo("build --frozen --offline")
.with_status(101)
.with_stderr("\
error: the lock file [ROOT]/foo/Cargo.lock needs to be updated but --frozen was passed to prevent this
If you want to try to generate the lock file without accessing the network, \
remove the --frozen flag and use --offline instead.
")
.run();
}

0 comments on commit dd8fa91

Please sign in to comment.