committed by
GitHub
parent
1e66a47764
commit
31db02d95a
@@ -65,7 +65,8 @@ type Commands = BTreeMap<String, String>;
|
|||||||
pub enum Step {
|
pub enum Step {
|
||||||
Asdf,
|
Asdf,
|
||||||
Atom,
|
Atom,
|
||||||
Brew,
|
BrewCask,
|
||||||
|
BrewFormula,
|
||||||
Cargo,
|
Cargo,
|
||||||
Chocolatey,
|
Chocolatey,
|
||||||
Choosenim,
|
Choosenim,
|
||||||
|
|||||||
18
src/main.rs
18
src/main.rs
@@ -137,7 +137,9 @@ fn run() -> Result<()> {
|
|||||||
linux::run_etc_update(sudo.as_ref(), run_type)
|
linux::run_etc_update(sudo.as_ref(), run_type)
|
||||||
})?;
|
})?;
|
||||||
|
|
||||||
runner.execute(Step::Brew, "Brew", || unix::run_brew(&ctx, unix::BrewVariant::Linux))?;
|
runner.execute(Step::BrewFormula, "Brew", || {
|
||||||
|
unix::run_brew_formula(&ctx, unix::BrewVariant::Linux)
|
||||||
|
})?;
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(windows)]
|
#[cfg(windows)]
|
||||||
@@ -148,11 +150,17 @@ fn run() -> Result<()> {
|
|||||||
|
|
||||||
#[cfg(target_os = "macos")]
|
#[cfg(target_os = "macos")]
|
||||||
{
|
{
|
||||||
runner.execute(Step::Brew, "Brew (ARM)", || {
|
runner.execute(Step::BrewFormula, "Brew (ARM)", || {
|
||||||
unix::run_brew(&ctx, unix::BrewVariant::MacArm)
|
unix::run_brew_formula(&ctx, unix::BrewVariant::MacArm)
|
||||||
})?;
|
})?;
|
||||||
runner.execute(Step::Brew, "Brew (Intel)", || {
|
runner.execute(Step::BrewFormula, "Brew (Intel)", || {
|
||||||
unix::run_brew(&ctx, unix::BrewVariant::MacIntel)
|
unix::run_brew_formula(&ctx, unix::BrewVariant::MacIntel)
|
||||||
|
})?;
|
||||||
|
runner.execute(Step::BrewCask, "Brew Cask (ARM)", || {
|
||||||
|
unix::run_brew_cask(&ctx, unix::BrewVariant::MacArm)
|
||||||
|
})?;
|
||||||
|
runner.execute(Step::BrewCask, "Brew Cask (Intel)", || {
|
||||||
|
unix::run_brew_cask(&ctx, unix::BrewVariant::MacIntel)
|
||||||
})?;
|
})?;
|
||||||
runner.execute(Step::MacPorts, "MacPorts", || macos::run_macports(&ctx))?;
|
runner.execute(Step::MacPorts, "MacPorts", || macos::run_macports(&ctx))?;
|
||||||
runner.execute(Step::MicrosoftAutoUpdate, "Microsoft AutoUpdate", || {
|
runner.execute(Step::MicrosoftAutoUpdate, "Microsoft AutoUpdate", || {
|
||||||
|
|||||||
@@ -2,7 +2,9 @@
|
|||||||
use crate::error::SkipStep;
|
use crate::error::SkipStep;
|
||||||
use crate::error::TopgradeError;
|
use crate::error::TopgradeError;
|
||||||
use crate::execution_context::ExecutionContext;
|
use crate::execution_context::ExecutionContext;
|
||||||
use crate::executor::{CommandExt, Executor, ExecutorExitStatus, RunType};
|
#[cfg(target_os = "macos")]
|
||||||
|
use crate::executor::CommandExt;
|
||||||
|
use crate::executor::{Executor, ExecutorExitStatus, RunType};
|
||||||
use crate::terminal::{print_separator, print_warning};
|
use crate::terminal::{print_separator, print_warning};
|
||||||
use crate::utils::{require, PathExt};
|
use crate::utils::{require, PathExt};
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
@@ -85,37 +87,52 @@ pub fn run_oh_my_fish(ctx: &ExecutionContext) -> Result<()> {
|
|||||||
ctx.run_type().execute(&fish).args(&["-c", "omf update"]).check_run()
|
ctx.run_type().execute(&fish).args(&["-c", "omf update"]).check_run()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn run_brew(ctx: &ExecutionContext, variant: BrewVariant) -> Result<()> {
|
pub fn run_brew_formula(ctx: &ExecutionContext, variant: BrewVariant) -> Result<()> {
|
||||||
require(variant.binary_name())?;
|
require(variant.binary_name())?;
|
||||||
print_separator(variant.step_title());
|
print_separator(variant.step_title());
|
||||||
let run_type = ctx.run_type();
|
let run_type = ctx.run_type();
|
||||||
|
|
||||||
|
variant.execute(run_type).arg("update").check_run()?;
|
||||||
|
variant
|
||||||
|
.execute(run_type)
|
||||||
|
.args(&["upgrade", "--ignore-pinned", "--formula"])
|
||||||
|
.check_run()?;
|
||||||
|
|
||||||
|
if ctx.config().cleanup() {
|
||||||
|
variant.execute(run_type).arg("cleanup").check_run()?;
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(target_os = "macos")]
|
||||||
|
pub fn run_brew_cask(ctx: &ExecutionContext, variant: BrewVariant) -> Result<()> {
|
||||||
|
require(variant.binary_name())?;
|
||||||
|
print_separator(format!("{} - Cask", variant.step_title()));
|
||||||
|
let run_type = ctx.run_type();
|
||||||
|
|
||||||
let cask_upgrade_exists = variant
|
let cask_upgrade_exists = variant
|
||||||
.execute(RunType::Wet)
|
.execute(RunType::Wet)
|
||||||
.args(&["--repository", "buo/cask-upgrade"])
|
.args(&["--repository", "buo/cask-upgrade"])
|
||||||
.check_output()
|
.check_output()
|
||||||
.map(|p| Path::new(p.trim()).exists())?;
|
.map(|p| Path::new(p.trim()).exists())?;
|
||||||
|
|
||||||
let mut brew_args = vec!["upgrade", "--ignore-pinned"];
|
let mut brew_args = vec![];
|
||||||
|
|
||||||
if cask_upgrade_exists {
|
if cask_upgrade_exists {
|
||||||
brew_args.push("--formula")
|
brew_args.extend(&["cu", "-y"]);
|
||||||
} else if ctx.config().brew_cask_greedy() {
|
|
||||||
brew_args.push("--greedy");
|
|
||||||
}
|
|
||||||
|
|
||||||
variant.execute(run_type).arg("update").check_run()?;
|
|
||||||
variant.execute(run_type).args(&brew_args).check_run()?;
|
|
||||||
|
|
||||||
if cask_upgrade_exists {
|
|
||||||
let mut args = vec!["cu", "-y"];
|
|
||||||
if ctx.config().brew_cask_greedy() {
|
if ctx.config().brew_cask_greedy() {
|
||||||
args.push("-a");
|
brew_args.push("-a");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
brew_args.extend(&["--cask", "upgrade"]);
|
||||||
|
if ctx.config().brew_cask_greedy() {
|
||||||
|
brew_args.push("--greedy");
|
||||||
}
|
}
|
||||||
|
|
||||||
variant.execute(run_type).args(&args).check_run()?;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
variant.execute(run_type).args(&brew_args).check_run()?;
|
||||||
|
|
||||||
if ctx.config().cleanup() {
|
if ctx.config().cleanup() {
|
||||||
variant.execute(run_type).arg("cleanup").check_run()?;
|
variant.execute(run_type).arg("cleanup").check_run()?;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user