From 336f529410a0c9c0fa884ea07f6fa3fa11428c0c Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sat, 23 Apr 2022 15:39:58 +0300 Subject: [PATCH] "Ultimate vimrc" support (#904) * "Ultimate vimrc" support Fixes #856 * Fix * fix --- src/main.rs | 1 + src/steps/vim.rs | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/src/main.rs b/src/main.rs index 24f95d82..a150d84f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -319,6 +319,7 @@ fn run() -> Result<()> { runner.execute(Step::Jetpack, "jetpack", || generic::run_jetpack(run_type))?; runner.execute(Step::Vim, "vim", || vim::upgrade_vim(&base_dirs, &ctx))?; runner.execute(Step::Vim, "Neovim", || vim::upgrade_neovim(&base_dirs, &ctx))?; + runner.execute(Step::Vim, "The Ultimate vimrc", || vim::upgrade_ultimate_vimrc(&ctx))?; runner.execute(Step::Vim, "voom", || vim::run_voom(&base_dirs, run_type))?; runner.execute(Step::Kakoune, "Kakoune", || kakoune::upgrade_kak_plug(&ctx))?; runner.execute(Step::Node, "npm", || node::run_npm_upgrade(&ctx))?; diff --git a/src/steps/vim.rs b/src/steps/vim.rs index ce47221c..ecf0be87 100644 --- a/src/steps/vim.rs +++ b/src/steps/vim.rs @@ -77,6 +77,38 @@ fn upgrade(vim: &Path, vimrc: &Path, ctx: &ExecutionContext) -> Result<()> { Ok(()) } +pub fn upgrade_ultimate_vimrc(ctx: &ExecutionContext) -> Result<()> { + let config_dir = ctx.base_dirs().home_dir().join(".vim_runtime").require()?; + let git = require("git")?; + let python = require("python3")?; + let update_plugins = config_dir.join("update_plugins.py").require()?; + + print_separator("The Ultimate vimrc"); + + ctx.run_type() + .execute(&git) + .current_dir(&config_dir) + .args(&["reset", "--hard"]) + .check_run()?; + ctx.run_type() + .execute(&git) + .current_dir(&config_dir) + .args(&["clean", "-d", "--force"]) + .check_run()?; + ctx.run_type() + .execute(&git) + .current_dir(&config_dir) + .args(&["pull", "--rebase"]) + .check_run()?; + ctx.run_type() + .execute(python) + .current_dir(config_dir) + .arg(update_plugins) + .check_run()?; + + Ok(()) +} + pub fn upgrade_vim(base_dirs: &BaseDirs, ctx: &ExecutionContext) -> Result<()> { let vim = require("vim")?;