diff --git a/src/main.rs b/src/main.rs index fb189595..d75f4645 100644 --- a/src/main.rs +++ b/src/main.rs @@ -295,6 +295,7 @@ fn run() -> Result<()> { runner.execute(Step::Shell, "bash-it", || unix::run_bashit(&ctx))?; runner.execute(Step::Shell, "oh-my-fish", || unix::run_oh_my_fish(&ctx))?; runner.execute(Step::Shell, "fish-plug", || unix::run_fish_plug(&ctx))?; + runner.execute(Step::Shell, "fundle", || unix::run_fundle(&ctx))?; runner.execute(Step::Tmux, "tmux", || tmux::run_tpm(&base_dirs, run_type))?; runner.execute(Step::Tldr, "TLDR", || unix::run_tldr(run_type))?; runner.execute(Step::Pearl, "pearl", || unix::run_pearl(run_type))?; diff --git a/src/steps/os/unix.rs b/src/steps/os/unix.rs index c28b92ee..a7313ed8 100644 --- a/src/steps/os/unix.rs +++ b/src/steps/os/unix.rs @@ -157,6 +157,23 @@ pub fn run_fish_plug(ctx: &ExecutionContext) -> Result<()> { ctx.run_type().execute(&fish).args(["-c", "plug update"]).check_run() } +/// Upgrades `fundle` and `fundle` plugins. +/// +/// `fundle` is a package manager for the Fish shell. +/// +/// See: +pub fn run_fundle(ctx: &ExecutionContext) -> Result<()> { + let fish = require("fish")?; + ctx.base_dirs().home_dir().join(".config/fish/fundle").require()?; + + print_separator("fundle"); + + ctx.run_type() + .execute(fish) + .args(["-c", "fundle self-update && fundle update"]) + .check_run() +} + #[cfg(not(any(target_os = "android", target_os = "macos")))] pub fn upgrade_gnome_extensions(ctx: &ExecutionContext) -> Result<()> { let gdbus = require("gdbus")?;