Files
AeroPkg/src/commands/disable.rs

33 lines
957 B
Rust

use std::fs;
use crate::utils::fs::removelink::removelink;
use crate::utils::shell::*;
pub fn disable(repo: &String, pkgname: &String) {
let source = &crate::commands::get_aeropkg_base().join(repo).join(pkgname);
if source.join("disabled").exists() { return };
let destination = &source.parent()
.ok_or("Failed to get parent directory for path").unwrap()
.to_path_buf();
let dirs_to_copy = vec![
("bin"),
("lib"),
("libexec"),
("include"),
("share"),
];
for base_system_folder_dir in dirs_to_copy {
let src = &source.join(base_system_folder_dir);
let dest = &destination.join(base_system_folder_dir);
if src.exists() { removelink(src, dest).map_err(|e| format!("Failed to remove link {} to {}: {}", src.display(), dest.display(), e)).unwrap() }
}
mount_overlay();
shell_update();
fs::File::create(source.join("disabled")).ok();
}