Uber refactor
This commit is contained in:
38
src/vim.rs
38
src/vim.rs
@@ -1,4 +1,5 @@
|
||||
use super::utils::{Check, PathExt};
|
||||
use super::terminal::Terminal;
|
||||
use super::utils::{which, Check, PathExt};
|
||||
use directories::BaseDirs;
|
||||
use failure;
|
||||
use std::fs;
|
||||
@@ -44,7 +45,7 @@ pub fn vimrc(base_dirs: &BaseDirs) -> Option<PathBuf> {
|
||||
.or_else(|| base_dirs.home_dir().join(".vim/vimrc").if_exists())
|
||||
}
|
||||
|
||||
pub fn nvimrc(base_dirs: &BaseDirs) -> Option<PathBuf> {
|
||||
fn nvimrc(base_dirs: &BaseDirs) -> Option<PathBuf> {
|
||||
#[cfg(unix)]
|
||||
return base_dirs.config_dir().join("nvim/init.vim").if_exists();
|
||||
|
||||
@@ -52,7 +53,8 @@ pub fn nvimrc(base_dirs: &BaseDirs) -> Option<PathBuf> {
|
||||
return base_dirs.cache_dir().join("nvim/init.vim").if_exists();
|
||||
}
|
||||
|
||||
pub fn upgrade(vim: &PathBuf, vimrc: &PathBuf, plugin_framework: &PluginFramework) -> Result<(), failure::Error> {
|
||||
#[must_use]
|
||||
fn upgrade(vim: &PathBuf, vimrc: &PathBuf, plugin_framework: PluginFramework) -> Result<(), failure::Error> {
|
||||
Command::new(&vim)
|
||||
.args(&[
|
||||
"-N",
|
||||
@@ -74,3 +76,33 @@ pub fn upgrade(vim: &PathBuf, vimrc: &PathBuf, plugin_framework: &PluginFramewor
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn upgrade_vim(base_dirs: &BaseDirs, terminal: &mut Terminal) -> Option<(&'static str, bool)> {
|
||||
if let Some(vim) = which("vim") {
|
||||
if let Some(vimrc) = vimrc(&base_dirs) {
|
||||
if let Some(plugin_framework) = PluginFramework::detect(&vimrc) {
|
||||
terminal.print_separator(&format!("Vim ({:?})", plugin_framework));
|
||||
let success = upgrade(&vim, &vimrc, plugin_framework).is_ok();
|
||||
return Some(("vim", success));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
None
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn upgrade_neovim(base_dirs: &BaseDirs, terminal: &mut Terminal) -> Option<(&'static str, bool)> {
|
||||
if let Some(nvim) = which("nvim") {
|
||||
if let Some(nvimrc) = nvimrc(&base_dirs) {
|
||||
if let Some(plugin_framework) = PluginFramework::detect(&nvimrc) {
|
||||
terminal.print_separator(&format!("Neovim ({:?})", plugin_framework));
|
||||
let success = upgrade(&nvim, &nvimrc, plugin_framework).is_ok();
|
||||
return Some(("Neovim", success));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
None
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user