From e2aa3c30329d811fd5b57da9bac4088dce0b3552 Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Sun, 9 Apr 2017 09:19:24 -0700 Subject: [PATCH] Move package installing logic to function --- src/install.rs | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/install.rs b/src/install.rs index 615c63aaad..6e311c3ec3 100644 --- a/src/install.rs +++ b/src/install.rs @@ -63,6 +63,17 @@ fn prompt_password(prompt: &str, confirm_prompt: &str) -> Result } } +fn install_packages(config: &Config, dest: &str) { + let mut repo = Repo::new(TARGET); + repo.add_remote(REMOTE); + repo.set_dest(dest); + + for (packagename, _package) in &config.packages { + println!("Installing package {}", packagename); + repo.install(&packagename).unwrap(); + } +} + pub fn install(config: Config) -> Result<(), String> { println!("Install {:#?}", config); @@ -85,7 +96,7 @@ pub fn install(config: Config) -> Result<(), String> { let sysroot = { let mut wd = env::current_dir().map_err(|err| format!("failed to get current dir: {}", err))?; - let path = prompt!(config.general.sysroot, "sysroot".to_string(), "sysroot [sysroot]: ")?; + let path = prompt!(config.general.sysroot.clone(), "sysroot".to_string(), "sysroot [sysroot]: ")?; wd.push(path); wd }; @@ -115,14 +126,7 @@ pub fn install(config: Config) -> Result<(), String> { dir!(""); - let mut repo = Repo::new(TARGET); - repo.add_remote(REMOTE); - repo.set_dest(sysroot.to_str().unwrap()); - - for (packagename, _package) in config.packages { - println!("Installing package {}", packagename); - repo.install(&packagename).unwrap(); - } + install_packages(&config, sysroot.to_str().unwrap()); for file in config.files { file!(file.path.trim_matches('/'), file.data.as_bytes());