feat: install_package_with_dependencies

This commit is contained in:
Ahmet Kaan GÜMÜŞ 2024-11-24 20:58:31 +03:00
parent 4ba4e6fe30
commit d9d2d72f97
2 changed files with 21 additions and 1 deletions

View file

@ -21,6 +21,9 @@ impl Package {
pub fn get_hash(&self) -> Vec<u8> {
self.hash.to_vec()
}
pub fn get_dependencies(&self) -> Vec<String> {
self.dependencies.to_vec()
}
}
impl Default for Package {

View file

@ -35,7 +35,7 @@ pub async fn user_interaction() {
return;
}
};
install_package(package_name).await;
install_package_with_dependencies(package_name).await;
return;
}
"delete_package" => {
@ -95,6 +95,23 @@ async fn read_package(package_name: &String) {
}
}
async fn install_package_with_dependencies(package_name: &String) {
let dependencies = match crate::request::read_package(package_name.to_owned()).await {
Some(package) => package.get_dependencies(),
None => {
eprintln!(
"Error: There is No Package with This Name | {}",
package_name
);
return;
}
};
for dependency in dependencies {
install_package(&dependency).await;
}
install_package(package_name).await;
}
async fn install_package(package_name: &String) {
match crate::request::download_package(package_name.to_owned()).await {
Some(package_data) => {