mirror of
https://github.com/SkyfallWasTaken/dinopkg.git
synced 2025-05-23 04:43:05 +00:00
Add install scaffold, dist-keys
This commit is contained in:
parent
e646347714
commit
c5dd2c6bba
4 changed files with 40 additions and 5 deletions
|
@ -1,10 +1,39 @@
|
|||
use color_eyre::Result;
|
||||
use dinopkg_npm_registry::PackageInfo;
|
||||
use owo_colors::OwoColorize;
|
||||
|
||||
pub async fn install_cmd(name: String) -> Result<()> {
|
||||
let client = reqwest::Client::new();
|
||||
|
||||
let package_info = PackageInfo::from_name(&name, &client).await?;
|
||||
dbg!(package_info);
|
||||
let latest_version = package_info.dist_keys.get("latest").unwrap();
|
||||
let latest_package = package_info.versions.get(latest_version).unwrap();
|
||||
print_dep_version(&latest_package.name, &latest_package.version, false);
|
||||
|
||||
if let Some(deps) = &latest_package.dependencies {
|
||||
for (dep_name, dep_version) in deps {
|
||||
print_dep_version(dep_name, dep_version, false);
|
||||
}
|
||||
}
|
||||
if let Some(deps) = &latest_package.dev_dependencies {
|
||||
for (dep_name, dep_version) in deps {
|
||||
print_dep_version(dep_name, dep_version, true);
|
||||
}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn print_dep_version(name: &String, version: &String, is_dev: bool) {
|
||||
println!(
|
||||
" {} {} {}{}",
|
||||
"Installing".green().bold(),
|
||||
name,
|
||||
version,
|
||||
if is_dev {
|
||||
format!("{}", " (dev)".dimmed().bold())
|
||||
} else {
|
||||
"".into()
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue