diff --git a/src/config.rs b/src/config.rs index deed9217..15ba6b61 100644 --- a/src/config.rs +++ b/src/config.rs @@ -110,6 +110,7 @@ pub enum Step { Sheldon, Choosenim, Rtcl, + Deno, } #[derive(Deserialize, Default, Debug)] diff --git a/src/main.rs b/src/main.rs index d11ec20b..25086bce 100644 --- a/src/main.rs +++ b/src/main.rs @@ -275,6 +275,7 @@ fn run() -> Result<()> { runner.execute(Step::Vim, "voom", || vim::run_voom(&base_dirs, run_type))?; runner.execute(Step::Node, "npm", || node::run_npm_upgrade(&base_dirs, run_type))?; runner.execute(Step::Node, "yarn", || node::yarn_global_update(run_type))?; + runner.execute(Step::Deno, "deno", || node::deno_upgrade(&ctx))?; runner.execute(Step::Composer, "composer", || generic::run_composer_update(&ctx))?; runner.execute(Step::Krew, "krew", || generic::run_krew_upgrade(run_type))?; runner.execute(Step::Gem, "gem", || generic::run_gem(&base_dirs, run_type))?; diff --git a/src/steps/node.rs b/src/steps/node.rs index b1ec515d..8ee6a73d 100644 --- a/src/steps/node.rs +++ b/src/steps/node.rs @@ -1,9 +1,9 @@ #![allow(unused_imports)] -use crate::error::SkipStep; use crate::executor::{CommandExt, RunType}; use crate::terminal::print_separator; use crate::utils::{require, PathExt}; +use crate::{error::SkipStep, execution_context::ExecutionContext}; use anyhow::Result; use log::debug; @@ -65,3 +65,10 @@ pub fn yarn_global_update(run_type: RunType) -> Result<()> { print_separator("Yarn"); run_type.execute(&yarn).args(&["global", "upgrade", "-s"]).check_run() } + +pub fn deno_upgrade(ctx: &ExecutionContext) -> Result<()> { + let deno = require("deno")?; + + print_separator("Deno"); + ctx.run_type().execute(&deno).arg("upgrade").check_run() +}