Files
topgrade/src/steps/os/macos.rs
2020-02-27 15:32:13 +02:00

33 lines
985 B
Rust

use crate::execution_context::ExecutionContext;
use crate::executor::RunType;
use crate::terminal::print_separator;
use crate::utils::{require, PathExt};
use anyhow::Result;
use std::path::Path;
pub fn run_msupdate(ctx: &ExecutionContext) -> Result<()> {
let msupdate =
Path::new("/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate")
.require()?;
print_separator("Microsoft AutoUpdate");
ctx.run_type().execute(msupdate).arg("--list").check_run()?;
ctx.run_type().execute(msupdate).arg("--install").check_run()
}
pub fn run_mas(run_type: RunType) -> Result<()> {
let mas = require("mas")?;
print_separator("macOS App Store");
run_type.execute(mas).arg("upgrade").check_run()
}
pub fn upgrade_macos(run_type: RunType) -> Result<()> {
print_separator("macOS system update");
run_type
.execute("softwareupdate")
.args(&["--install", "--all"])
.check_run()
}