From eb49b3e242d7e6935677a4b6d706779b76348ff7 Mon Sep 17 00:00:00 2001 From: Kate Date: Mon, 27 May 2024 22:40:48 +0100 Subject: [PATCH] Display a note when reloading a repository so that users are aware it may take some time --- master_changes.md | 1 + src/state/opamRepositoryState.ml | 7 ++++++- tests/reftests/update.test | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/master_changes.md b/master_changes.md index cad62daaa71..5c1b37f9a0c 100644 --- a/master_changes.md +++ b/master_changes.md @@ -57,6 +57,7 @@ users) ## Update / Upgrade * [BUG] Stop triggering "Undefined filter variable variable" warning for `?variable` [#5983 @dra27] * Display extractions in the status bar [#5977 @dra27] + * Display a note when reloading a repository [#5977 @kit-ty-kate] ## Tree * [BUG] Fix `opam tree --with-*` assigning the `with-*` variables to unrequested packages [#5919 @kit-ty-kate @rjbou - fix #5755] diff --git a/src/state/opamRepositoryState.ml b/src/state/opamRepositoryState.ml index f3f84343bb5..bebc7d4e905 100644 --- a/src/state/opamRepositoryState.ml +++ b/src/state/opamRepositoryState.ml @@ -78,6 +78,9 @@ module Cache = struct end let load_opams_from_dir repo_name repo_root = + if OpamConsole.disp_status_line () || OpamConsole.verbose () then + OpamConsole.status_line "Processing: [%s: loading data]" + (OpamConsole.colorise `blue (OpamRepositoryName.to_string repo_name)); (* FIXME: why is this different from OpamPackage.list ? *) let rec aux r dir = if OpamFilename.exists_dir dir then @@ -104,7 +107,9 @@ let load_opams_from_dir repo_name repo_root = r fnames else r in - aux OpamPackage.Map.empty (OpamRepositoryPath.packages_dir repo_root) + Fun.protect + (fun () -> aux OpamPackage.Map.empty (OpamRepositoryPath.packages_dir repo_root)) + ~finally:OpamConsole.clear_status let load_repo repo repo_root = let t = OpamConsole.timer () in diff --git a/tests/reftests/update.test b/tests/reftests/update.test index 40c4cee8ce9..568829b1c1c 100644 --- a/tests/reftests/update.test +++ b/tests/reftests/update.test @@ -6,4 +6,5 @@ opam-version: "2.0" <><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><> Processing 1/1: [default: rsync] [default] synchronised from file://${BASEDIR}/REPO +Processing: [default: loading data] Now run 'opam upgrade' to apply any package updates.