diff --git a/src/main.rs b/src/main.rs index 4427a1c8..cc341ef5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -191,7 +191,7 @@ fn run() -> Result<(), Error> { if let Some(vimrc) = vim::vimrc(&base_dirs) { if let Some(plugin_framework) = vim::PluginFramework::detect(&vimrc) { terminal.print_separator(&format!("Vim ({:?})", plugin_framework)); - run_vim(&vim, &vimrc, plugin_framework.upgrade_command()).report("Vim", &mut reports); + vim::upgrade(&vim, &vimrc, &plugin_framework).report("Vim", &mut reports); } } } @@ -200,7 +200,7 @@ fn run() -> Result<(), Error> { if let Some(nvimrc) = vim::nvimrc(&base_dirs) { if let Some(plugin_framework) = vim::PluginFramework::detect(&nvimrc) { terminal.print_separator(&format!("Neovim ({:?})", plugin_framework)); - run_vim(&nvim, &nvimrc, plugin_framework.upgrade_command()).report("Neovim", &mut reports); + vim::upgrade(&nvim, &nvimrc, &plugin_framework).report("Neovim", &mut reports); } } } diff --git a/src/steps.rs b/src/steps.rs index 0021b585..1283adb4 100644 --- a/src/steps.rs +++ b/src/steps.rs @@ -26,29 +26,6 @@ pub fn run_emacs(emacs: &PathBuf, init: &PathBuf) -> Result<(), failure::Error> Ok(()) } -pub fn run_vim(vim: &PathBuf, vimrc: &PathBuf, upgrade_command: &str) -> Result<(), failure::Error> { - Command::new(&vim) - .args(&[ - "-N", - "-u", - vimrc.to_str().unwrap(), - "-c", - upgrade_command, - "-c", - "quitall", - "-e", - "-s", - "-V1", - ]) - .spawn()? - .wait()? - .check()?; - - println!(); - - Ok(()) -} - pub fn run_apm(apm: &PathBuf) -> Result<(), failure::Error> { Command::new(&apm) .args(&["upgrade", "--confirm=false"]) diff --git a/src/vim.rs b/src/vim.rs index dad908c8..b74cdb81 100644 --- a/src/vim.rs +++ b/src/vim.rs @@ -1,7 +1,9 @@ -use super::utils::PathExt; +use super::utils::{Check, PathExt}; use directories::BaseDirs; +use failure; use std::fs; use std::path::PathBuf; +use std::process::Command; #[derive(Debug, Clone, Copy)] pub enum PluginFramework { @@ -49,3 +51,26 @@ pub fn nvimrc(base_dirs: &BaseDirs) -> Option { #[cfg(windows)] return base_dirs.cache_dir().join("nvim/init.vim").if_exists(); } + +pub fn upgrade(vim: &PathBuf, vimrc: &PathBuf, plugin_framework: &PluginFramework) -> Result<(), failure::Error> { + Command::new(&vim) + .args(&[ + "-N", + "-u", + vimrc.to_str().unwrap(), + "-c", + plugin_framework.upgrade_command(), + "-c", + "quitall", + "-e", + "-s", + "-V1", + ]) + .spawn()? + .wait()? + .check()?; + + println!(); + + Ok(()) +}