Support for updating kakoune plugins with kak-plug (#852)
This commit is contained in:
31
src/steps/kakoune.rs
Normal file
31
src/steps/kakoune.rs
Normal file
@@ -0,0 +1,31 @@
|
||||
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(())
|
||||
}
|
||||
Reference in New Issue
Block a user