pub async fn install_package(app: &Arc<App>, package: &VoltPackage, state: State) -> Result<()> {
    if download_tarball(app, package.clone(), state).await.is_err() {}

    // generate the package's script
    generate_script(app, package);

    // let directory = &app
    //     .volt_dir
    //     .join(package.version.clone())
    //     .join(package.name.clone());

    // let path = Path::new(directory.as_os_str());

    // hardlink_files(app.to_owned(), (&path).to_path_buf()).await;

    Ok(())
}
/// package all steps for installation into 1 convenient function.
package all steps for installation into 1 convenient function.
package all steps for installation into 1 convenient function .
pub async fn install_package(app: &Arc<App>, package: &VoltPackage, state: State) -> Result<()> {
    if download_tarball(app, package.clone(), state).await.is_err() {}
    // generate the package's script
    generate_script(app, package);
    // let directory = &app
    //     .volt_dir
    //     .join(package.version.clone())
    //     .join(package.name.clone());
    // let path = Path::new(directory.as_os_str());
    // hardlink_files(app.to_owned(), (&path).to_path_buf()).await;
    Ok(())
}
pub async fn install_package ( app : & Arc < App > , package : & VoltPackage , state : State ) -> Result < ( ) > { if download_tarball ( app , package . clone ( ) , state ) . await . is_err ( ) { } // generate the package's script generate_script ( app , package ) ; // let directory = &app //     .volt_dir //     .join(package.version.clone()) //     .join(package.name.clone()); // let path = Path::new(directory.as_os_str()); // hardlink_files(app.to_owned(), (&path).to_path_buf()).await; Ok ( ( ) ) }
package all steps for installation into 1 convenient function.
package all steps for installation into 1 convenient function .
app
&Arc<App>
package
&VoltPackage
state
State