From 623929cb647afb2e1031742ba245add7d990edd7 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Tue, 1 Oct 2019 20:50:44 +0300 Subject: [PATCH] Give zsh its own module --- src/main.rs | 10 +++---- src/steps/mod.rs | 2 ++ src/steps/os/unix.rs | 60 --------------------------------------- src/steps/zsh.rs | 67 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 74 insertions(+), 65 deletions(-) create mode 100644 src/steps/zsh.rs diff --git a/src/main.rs b/src/main.rs index dff1a6ce..a3e3fc79 100644 --- a/src/main.rs +++ b/src/main.rs @@ -241,7 +241,7 @@ fn run() -> Result<(), Error> { #[cfg(unix)] { - git_repos.insert(base_dirs.home_dir().join(".zshrc")); + git_repos.insert(zsh::zshrc(&base_dirs)); git_repos.insert(base_dirs.home_dir().join(".tmux")); git_repos.insert(base_dirs.home_dir().join(".config/fish")); git_repos.insert(base_dirs.config_dir().join("openbox")); @@ -282,25 +282,25 @@ fn run() -> Result<(), Error> { execute( &mut report, "zr", - || unix::run_zr(&base_dirs, run_type), + || zsh::run_zr(&base_dirs, run_type), config.no_retry(), )?; execute( &mut report, "antigen", - || unix::run_antigen(&base_dirs, run_type), + || zsh::run_antigen(&base_dirs, run_type), config.no_retry(), )?; execute( &mut report, "zplug", - || unix::run_zplug(&base_dirs, run_type), + || zsh::run_zplug(&base_dirs, run_type), config.no_retry(), )?; execute( &mut report, "oh-my-zsh", - || unix::run_oh_my_zsh(&base_dirs, run_type), + || zsh::run_oh_my_zsh(&base_dirs, run_type), config.no_retry(), )?; execute( diff --git a/src/steps/mod.rs b/src/steps/mod.rs index 1aeaf98d..09410d66 100644 --- a/src/steps/mod.rs +++ b/src/steps/mod.rs @@ -7,5 +7,7 @@ pub mod powershell; #[cfg(unix)] pub mod tmux; pub mod vim; +#[cfg(unix)] +pub mod zsh; pub use self::os::*; diff --git a/src/steps/os/unix.rs b/src/steps/os/unix.rs index 59f2f386..5585e6cb 100644 --- a/src/steps/os/unix.rs +++ b/src/steps/os/unix.rs @@ -7,66 +7,6 @@ use std::env; use std::path::{Path, PathBuf}; use std::process::Command; -pub fn run_zr(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { - let zsh = require("zsh")?; - - env::var("ZR_HOME") - .map(PathBuf::from) - .unwrap_or_else(|_| base_dirs.home_dir().join(".zr")) - .require()?; - - print_separator("zr"); - - let cmd = format!("source {} && zr update", zshrc(base_dirs).display()); - run_type.execute(zsh).args(&["-c", cmd.as_str()]).check_run() -} - -fn zshrc(base_dirs: &BaseDirs) -> PathBuf { - env::var("ZDOTDIR") - .map(|p| Path::new(&p).join(".zshrc")) - .unwrap_or_else(|_| base_dirs.home_dir().join(".zshrc")) -} - -pub fn run_antigen(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { - let zsh = require("zsh")?; - let zshrc = zshrc(base_dirs).require()?; - env::var("ADOTDIR") - .map(PathBuf::from) - .unwrap_or_else(|_| base_dirs.home_dir().join("antigen.zsh")) - .require()?; - - print_separator("antigen"); - - let cmd = format!("source {} && antigen selfupdate && antigen update", zshrc.display()); - run_type.execute(zsh).args(&["-c", cmd.as_str()]).check_run() -} - -pub fn run_zplug(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { - let zsh = require("zsh")?; - let zshrc = zshrc(base_dirs).require()?; - - env::var("ZPLUG_HOME") - .map(PathBuf::from) - .unwrap_or_else(|_| base_dirs.home_dir().join("zplug")) - .require()?; - - print_separator("zplug"); - - let cmd = format!("source {} && zplug update", zshrc.display()); - run_type.execute(zsh).args(&["-c", cmd.as_str()]).check_run() -} - -pub fn run_oh_my_zsh(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { - let zsh = require("zsh")?; - let zshrc = zshrc(base_dirs).require()?; - base_dirs.home_dir().join(".oh-my-zsh").require()?; - - print_separator("oh-my-zsh"); - - let cmd = format!("source {} && upgrade_oh_my_zsh", zshrc.display()); - run_type.execute(zsh).args(&["-c", cmd.as_str()]).check_run() -} - pub fn run_fisher(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { let fish = require("fish")?; base_dirs diff --git a/src/steps/zsh.rs b/src/steps/zsh.rs new file mode 100644 index 00000000..796568fd --- /dev/null +++ b/src/steps/zsh.rs @@ -0,0 +1,67 @@ +use crate::error::Error; +use crate::executor::RunType; +use crate::terminal::print_separator; +use crate::utils::{require, PathExt}; +use directories::BaseDirs; +use std::env; +use std::path::{Path, PathBuf}; + +pub fn run_zr(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { + let zsh = require("zsh")?; + + env::var("ZR_HOME") + .map(PathBuf::from) + .unwrap_or_else(|_| base_dirs.home_dir().join(".zr")) + .require()?; + + print_separator("zr"); + + let cmd = format!("source {} && zr update", zshrc(base_dirs).display()); + run_type.execute(zsh).args(&["-c", cmd.as_str()]).check_run() +} + +pub fn zshrc(base_dirs: &BaseDirs) -> PathBuf { + env::var("ZDOTDIR") + .map(|p| Path::new(&p).join(".zshrc")) + .unwrap_or_else(|_| base_dirs.home_dir().join(".zshrc")) +} + +pub fn run_antigen(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { + let zsh = require("zsh")?; + let zshrc = zshrc(base_dirs).require()?; + env::var("ADOTDIR") + .map(PathBuf::from) + .unwrap_or_else(|_| base_dirs.home_dir().join("antigen.zsh")) + .require()?; + + print_separator("antigen"); + + let cmd = format!("source {} && antigen selfupdate && antigen update", zshrc.display()); + run_type.execute(zsh).args(&["-c", cmd.as_str()]).check_run() +} + +pub fn run_zplug(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { + let zsh = require("zsh")?; + let zshrc = zshrc(base_dirs).require()?; + + env::var("ZPLUG_HOME") + .map(PathBuf::from) + .unwrap_or_else(|_| base_dirs.home_dir().join("zplug")) + .require()?; + + print_separator("zplug"); + + let cmd = format!("source {} && zplug update", zshrc.display()); + run_type.execute(zsh).args(&["-c", cmd.as_str()]).check_run() +} + +pub fn run_oh_my_zsh(base_dirs: &BaseDirs, run_type: RunType) -> Result<(), Error> { + let zsh = require("zsh")?; + let zshrc = zshrc(base_dirs).require()?; + base_dirs.home_dir().join(".oh-my-zsh").require()?; + + print_separator("oh-my-zsh"); + + let cmd = format!("source {} && upgrade_oh_my_zsh", zshrc.display()); + run_type.execute(zsh).args(&["-c", cmd.as_str()]).check_run() +}