feat: ✨ install_package_with_dependencies
This commit is contained in:
parent
4ba4e6fe30
commit
d9d2d72f97
2 changed files with 21 additions and 1 deletions
|
@ -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 {
|
||||
|
|
|
@ -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) => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue