32 lines
810 B
Rust
32 lines
810 B
Rust
|
|
use crate::error::TopgradeError;
|
||
|
|
use crate::terminal::print_separator;
|
||
|
|
use crate::utils::require;
|
||
|
|
use anyhow::Result;
|
||
|
|
|
||
|
|
use crate::execution_context::ExecutionContext;
|
||
|
|
use crate::executor::ExecutorOutput;
|
||
|
|
|
||
|
|
const UPGRADE_KAK: &str = include_str!("upgrade.kak");
|
||
|
|
|
||
|
|
pub fn upgrade_kak_plug(ctx: &ExecutionContext) -> Result<()> {
|
||
|
|
let kak = require("kak")?;
|
||
|
|
|
||
|
|
print_separator("Kakoune");
|
||
|
|
|
||
|
|
let mut command = ctx.run_type().execute(&kak);
|
||
|
|
command.args(&["-ui", "dummy", "-e", UPGRADE_KAK]);
|
||
|
|
|
||
|
|
let output = command.output()?;
|
||
|
|
|
||
|
|
if let ExecutorOutput::Wet(output) = output {
|
||
|
|
let status = output.status;
|
||
|
|
if !status.success() {
|
||
|
|
return Err(TopgradeError::ProcessFailed(status).into());
|
||
|
|
} else {
|
||
|
|
println!("Plugins upgraded")
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
Ok(())
|
||
|
|
}
|