Skip to content

Commit 734f29a

Browse files
feat: integrate Package struct changes into codebase, impl metadata CLI arg
1 parent a92a715 commit 734f29a

File tree

3 files changed

+22
-15
lines changed

3 files changed

+22
-15
lines changed

src/main.rs

+8-10
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ use crate::error::Error;
1717
use crate::game::{ecosystem, registry};
1818
use crate::game::import::{self, ImportBase, ImportOverrides};
1919
use crate::package::resolver::DependencyGraph;
20+
use crate::package::Package;
2021
use crate::project::lock::LockFile;
2122
use crate::project::overrides::ProjectOverrides;
2223
use crate::project::Project;
@@ -334,17 +335,14 @@ async fn main() -> Result<(), Error> {
334335
let lock = LockFile::open_or_new(&project.lockfile_path)?;
335336
let graph = DependencyGraph::from_graph(lock.package_graph);
336337

337-
println!("Installed packages:");
338-
339-
340-
341338
for package in graph.digest() {
342-
println!(
343-
"- {}-{} ({})",
344-
package.namespace.bold(),
345-
package.name.bold(),
346-
package.version.to_string().truecolor(90, 90, 90)
347-
);
339+
let package = Package::from_any(package).await?;
340+
let Some(meta) = package.get_metadata().await? else {
341+
continue
342+
};
343+
344+
let str = serde_json::to_string_pretty(&meta)?;
345+
println!("{str}");
348346
}
349347

350348
Ok(())

src/package/install/mod.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@ impl Installer {
2929
pub async fn load_and_prepare(package: &Package) -> Result<Installer, Error> {
3030
// Temp, we'll figure out a good solution from the progress reporter later.
3131
let test = VoidProgress {};
32-
let cache_dir = package.resolve(test.add_bar().as_ref()).await?;
32+
let cache_dir = match package.get_path().await {
33+
Some(x) => x,
34+
None => package.download(test.add_bar().as_ref()).await?
35+
};
3336

3437
let manifest = {
3538
let path = cache_dir.join("installer.json");

src/project/mod.rs

+10-4
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ impl Project {
293293
let packages = try_join_all(
294294
packages
295295
.into_iter()
296-
.map(|x| async move { Package::resolve_new(x).await }),
296+
.map(|x| async move { Package::from_any(x).await }),
297297
)
298298
.await?;
299299

@@ -306,7 +306,10 @@ impl Project {
306306
let bar = bar.as_ref();
307307

308308
// Resolve the package, either downloading it or returning its cached path.
309-
let package_dir = package.resolve(bar).await?;
309+
let package_dir = match package.get_path().await {
310+
Some(x) => x,
311+
None => package.download(bar).await?
312+
};
310313
let tracked_files = installer
311314
.install_package(
312315
&package,
@@ -376,7 +379,7 @@ impl Project {
376379
let packages = try_join_all(
377380
packages
378381
.into_iter()
379-
.map(|x| async move { Package::resolve_new(x).await }),
382+
.map(|x| async move { Package::from_any(x).await }),
380383
)
381384
.await?;
382385

@@ -385,7 +388,10 @@ impl Project {
385388
let bar = multi.add_bar();
386389
let bar = bar.as_ref();
387390

388-
let package_dir = package.resolve(bar).await?;
391+
let package_dir = match package.get_path().await {
392+
Some(x) => x,
393+
None => package.download(bar).await?
394+
};
389395
let state_entry = statefile.state.get(&package.identifier);
390396

391397
let tracked_files = state_entry

0 commit comments

Comments
 (0)