Skip to content

Commit a688e2d

Browse files
committed
feat(self-update): add with_saved_reg_value()
1 parent 3808163 commit a688e2d

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

src/cli/self_update/test.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,15 @@ fn restore_path(p: Option<RegValue>) {
4040
restore_reg_value(&RegKey::predef(HKEY_CURRENT_USER), "Environment", "PATH", p)
4141
}
4242

43+
#[cfg(windows)]
44+
pub fn with_saved_reg_value(root: &RegKey, subkey: &str, name: &str, f: &mut dyn FnMut()) {
45+
with_saved_global_state(
46+
|| get_reg_value(root, subkey, name),
47+
|p| restore_reg_value(root, subkey, name, p),
48+
f,
49+
)
50+
}
51+
4352
#[cfg(windows)]
4453
fn get_reg_value(root: &RegKey, subkey: &str, name: &str) -> io::Result<Option<RegValue>> {
4554
let subkey = root.open_subkey_with_flags(subkey, KEY_READ | KEY_WRITE)?;

src/test.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ pub use crate::cli::self_update::test::{get_path, with_saved_global_state, with_
1919
use crate::currentprocess;
2020
use crate::dist::dist::TargetTriple;
2121

22+
#[cfg(windows)]
23+
pub use crate::cli::self_update::test::with_saved_reg_value;
24+
2225
// Things that can have environment variables applied to them.
2326
pub trait Env {
2427
fn env<K, V>(&mut self, key: K, val: V)

0 commit comments

Comments
 (0)