bkp
This commit is contained in:
35
src/commands/disable.rs
Normal file
35
src/commands/disable.rs
Normal file
@ -0,0 +1,35 @@
|
||||
use std::path::PathBuf;
|
||||
use std::fs;
|
||||
use crate::utils::deletecopy::deletecopy;
|
||||
use crate::utils::shell::*;
|
||||
|
||||
pub fn disable(repo: &String, pkgname: &String) -> Result<(), String> {
|
||||
let source = PathBuf::from("/pkg").join(repo).join(pkgname);
|
||||
let _ = fs::File::create(&source.join("disabled"));
|
||||
let destination = source.parent()
|
||||
.ok_or("Failed to get parent directory for path")?
|
||||
.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() {
|
||||
deletecopy(&src, &dest)
|
||||
.map_err(|e| format!("Failed to delete copy {} to {}: {}", src.display(), dest.display(), e))?;
|
||||
}
|
||||
}
|
||||
|
||||
mount_overlay(&destination)?;
|
||||
shell_update()?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user