diff --git a/README.md b/README.md index c02a489c..8d75bb59 100644 --- a/README.md +++ b/README.md @@ -121,7 +121,8 @@ Just run `topgrade`. It will run the following steps: * [Voom](https://github.com/airblade/voom) * Node * Run `yarn global update` if yarn is installed. - * Run `npm update -g` if NPM is installed and `npm root -g` is a path inside your home directory. + * Run `npm update -g`. In Unix systems other then macOS the step will be + performed only if`npm root -g` is a path inside your home directory. * Run `composer global update` if Composer's home directory is inside the home directory of the user. Run `valet install` after. * Upgrade Atom packages diff --git a/src/steps/node.rs b/src/steps/node.rs index 37ff301a..e8722fa4 100644 --- a/src/steps/node.rs +++ b/src/steps/node.rs @@ -1,3 +1,4 @@ +#![allow(unused_imports)] use crate::error::SkipStep; use crate::executor::{CommandExt, RunType}; use crate::terminal::print_separator; @@ -17,6 +18,7 @@ impl NPM { Self { command } } + #[cfg(not(target_os = "macos"))] fn root(&self) -> Result { Command::new(&self.command) .args(&["root", "-g"]) @@ -31,11 +33,15 @@ impl NPM { } } -pub fn run_npm_upgrade(base_dirs: &BaseDirs, run_type: RunType) -> Result<()> { +pub fn run_npm_upgrade(_base_dirs: &BaseDirs, run_type: RunType) -> Result<()> { let npm = require("npm").map(NPM::new)?; - let npm_root = npm.root()?; - if !npm_root.is_descendant_of(base_dirs.home_dir()) { - return Err(SkipStep.into()); + + #[cfg(not(target_os = "macos"))] + { + let npm_root = npm.root()?; + if !npm_root.is_descendant_of(_base_dirs.home_dir()) { + return Err(SkipStep.into()); + } } print_separator("Node Package Manager");