Skip to content

Commit 2010891

Browse files
committed
Metadata refactor 2
1 parent 8ce943c commit 2010891

File tree

6 files changed

+23
-79
lines changed

6 files changed

+23
-79
lines changed

crates/forge/src/scarb.rs

Lines changed: 10 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ mod tests {
137137
use configuration::load_package_config;
138138
use forge_runner::forge_config::ForgeTrackedResource;
139139
use indoc::{formatdoc, indoc};
140-
use scarb_api::metadata::MetadataCommandExt;
140+
use scarb_api::metadata::get_metadata_for_dir;
141141
use scarb_metadata::PackageId;
142142
use std::env;
143143
use test_utils::{get_snforge_std_entry, tempdir_with_tool_versions};
@@ -195,11 +195,7 @@ mod tests {
195195
#[test]
196196
fn get_forge_config_for_package() {
197197
let temp = setup_package("simple_package");
198-
let scarb_metadata = ScarbCommand::metadata()
199-
.inherit_stderr()
200-
.current_dir(temp.path())
201-
.run()
202-
.unwrap();
198+
let scarb_metadata = get_metadata_for_dir(temp.path()).unwrap();
203199

204200
let config = load_package_config::<ForgeConfigFromScarb>(
205201
&scarb_metadata,
@@ -248,11 +244,7 @@ mod tests {
248244
#[test]
249245
fn get_forge_config_for_package_err_on_invalid_package() {
250246
let temp = setup_package("simple_package");
251-
let scarb_metadata = ScarbCommand::metadata()
252-
.inherit_stderr()
253-
.current_dir(temp.path())
254-
.run()
255-
.unwrap();
247+
let scarb_metadata = get_metadata_for_dir(temp.path()).unwrap();
256248

257249
let result = load_package_config::<ForgeConfigFromScarb>(
258250
&scarb_metadata,
@@ -278,11 +270,7 @@ mod tests {
278270
);
279271
temp.child("Scarb.toml").write_str(content).unwrap();
280272

281-
let scarb_metadata = ScarbCommand::metadata()
282-
.inherit_stderr()
283-
.current_dir(temp.path())
284-
.run()
285-
.unwrap();
273+
let scarb_metadata = get_metadata_for_dir(temp.path()).unwrap();
286274

287275
let config = load_package_config::<ForgeConfigFromScarb>(
288276
&scarb_metadata,
@@ -315,11 +303,7 @@ mod tests {
315303
);
316304
temp.child("Scarb.toml").write_str(content).unwrap();
317305

318-
let scarb_metadata = ScarbCommand::metadata()
319-
.inherit_stderr()
320-
.current_dir(temp.path())
321-
.run()
322-
.unwrap();
306+
let scarb_metadata = get_metadata_for_dir(temp.path()).unwrap();
323307
let err = load_package_config::<ForgeConfigFromScarb>(
324308
&scarb_metadata,
325309
&scarb_metadata.workspace.members[0],
@@ -346,11 +330,7 @@ mod tests {
346330
);
347331
temp.child("Scarb.toml").write_str(content).unwrap();
348332

349-
let scarb_metadata = ScarbCommand::metadata()
350-
.inherit_stderr()
351-
.current_dir(temp.path())
352-
.run()
353-
.unwrap();
333+
let scarb_metadata = get_metadata_for_dir(temp.path()).unwrap();
354334
let err = load_package_config::<ForgeConfigFromScarb>(
355335
&scarb_metadata,
356336
&scarb_metadata.workspace.members[0],
@@ -379,11 +359,7 @@ mod tests {
379359
);
380360
temp.child("Scarb.toml").write_str(content).unwrap();
381361

382-
let scarb_metadata = ScarbCommand::metadata()
383-
.inherit_stderr()
384-
.current_dir(temp.path())
385-
.run()
386-
.unwrap();
362+
let scarb_metadata = get_metadata_for_dir(temp.path()).unwrap();
387363

388364
let err = load_package_config::<ForgeConfigFromScarb>(
389365
&scarb_metadata,
@@ -413,11 +389,7 @@ mod tests {
413389
);
414390
temp.child("Scarb.toml").write_str(content).unwrap();
415391

416-
let scarb_metadata = ScarbCommand::metadata()
417-
.inherit_stderr()
418-
.current_dir(temp.path())
419-
.run()
420-
.unwrap();
392+
let scarb_metadata = get_metadata_for_dir(temp.path()).unwrap();
421393

422394
let err = load_package_config::<ForgeConfigFromScarb>(
423395
&scarb_metadata,
@@ -444,11 +416,7 @@ mod tests {
444416
);
445417
temp.child("Scarb.toml").write_str(content).unwrap();
446418

447-
let scarb_metadata = ScarbCommand::metadata()
448-
.inherit_stderr()
449-
.current_dir(temp.path())
450-
.run()
451-
.unwrap();
419+
let scarb_metadata = get_metadata_for_dir(temp.path()).unwrap();
452420

453421
let forge_config = load_package_config::<ForgeConfigFromScarb>(
454422
&scarb_metadata,
@@ -475,11 +443,7 @@ mod tests {
475443
);
476444
temp.child("Scarb.toml").write_str(content).unwrap();
477445

478-
let scarb_metadata = ScarbCommand::metadata()
479-
.inherit_stderr()
480-
.current_dir(temp.path())
481-
.run()
482-
.unwrap();
446+
let scarb_metadata = get_metadata_for_dir(temp.path()).unwrap();
483447

484448
// SAFETY: This value is only read here and is not modified by other tests.
485449
unsafe {

crates/forge/tests/e2e/clean.rs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
use super::common::runner::{runner, setup_package, test_runner};
22
use assert_fs::TempDir;
33
use camino::Utf8PathBuf;
4-
use scarb_api::ScarbCommand;
5-
use scarb_api::metadata::MetadataCommandExt;
4+
use scarb_api::metadata::get_metadata_for_dir;
65
use shared::test_utils::output_assert::assert_stdout_contains;
76
use std::path::Path;
87

@@ -231,12 +230,7 @@ fn generate_clean_components(state: CleanComponentsState, temp_dir: &TempDir) {
231230
}
232231

233232
fn check_clean_components_state(path: &Path) -> CleanComponentsState {
234-
let scarb_metadata = ScarbCommand::metadata()
235-
.inherit_stderr()
236-
.current_dir(path)
237-
.no_deps()
238-
.run()
239-
.unwrap();
233+
let scarb_metadata = get_metadata_for_dir(path).unwrap();
240234

241235
let workspace_root = scarb_metadata.workspace.root;
242236

crates/forge/tests/integration/setup_fork.rs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ use forge_runner::forge_config::{
2424
ExecutionDataToSave, ForgeConfig, OutputConfig, TestRunnerConfig,
2525
};
2626
use scarb_api::ScarbCommand;
27-
use scarb_api::metadata::MetadataCommandExt;
27+
use scarb_api::metadata::get_metadata_for_dir;
2828
use shared::test_utils::node_url::node_rpc_url;
2929
use test_utils::runner::{Contract, assert_case_output_contains, assert_failed, assert_passed};
3030
use test_utils::running_tests::run_test_case;
@@ -117,10 +117,7 @@ fn fork_aliased_decorator() {
117117
.run()
118118
.unwrap();
119119

120-
let metadata = ScarbCommand::metadata()
121-
.current_dir(test.path().unwrap())
122-
.run()
123-
.unwrap();
120+
let metadata = get_metadata_for_dir(test.path().unwrap()).unwrap();
124121

125122
let package = metadata
126123
.packages
@@ -209,10 +206,7 @@ fn fork_aliased_decorator_overrding() {
209206
.run()
210207
.unwrap();
211208

212-
let metadata = ScarbCommand::metadata()
213-
.current_dir(test.path().unwrap())
214-
.run()
215-
.unwrap();
209+
let metadata = get_metadata_for_dir(test.path().unwrap()).unwrap();
216210

217211
let package = metadata
218212
.packages

crates/scarb-api/src/command.rs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use crate::metadata::MetadataCommand;
21
use crate::version::VersionCommand;
32
use anyhow::Context;
43
use scarb_ui::args::{FeaturesSpec, PackagesFilter, ProfileSpec, ToEnvVars};
@@ -53,12 +52,6 @@ impl ScarbCommand {
5352
cmd
5453
}
5554

56-
/// Creates [`MetadataCommand`] command
57-
#[must_use]
58-
pub fn metadata() -> MetadataCommand {
59-
MetadataCommand::new()
60-
}
61-
6255
/// Creates [`VersionCommand`] command
6356
#[must_use]
6457
pub fn version() -> VersionCommand {

crates/scarb-api/src/metadata.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ pub fn get_metadata() -> Result<Metadata> {
2424

2525
fn get_metadata_inner(current_dir: Option<impl Into<PathBuf>>) -> Result<Metadata> {
2626
let mut command = MetadataCommand::new();
27+
2728
if let Some(dir) = current_dir {
2829
command.current_dir(dir);
2930
}

crates/sncast/src/starknet_commands/verify/voyager.rs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use camino::{Utf8Path, Utf8PathBuf};
33
use foundry_ui::{UI, components::warning::WarningMessage};
44
use itertools::Itertools;
55
use reqwest::{self, StatusCode};
6-
use scarb_api::metadata::MetadataCommand;
6+
use scarb_api::metadata::get_metadata_for_dir;
77
use scarb_metadata::{Metadata, PackageMetadata};
88
use serde::Serialize;
99
use sncast::Network;
@@ -112,14 +112,12 @@ fn gather_packages(metadata: &Metadata, packages: &mut Vec<PackageMetadata>) ->
112112
.collect();
113113

114114
for (name, manifest) in out_of_workspace_dependencies {
115-
let new_meta = MetadataCommand::new()
116-
.json()
117-
.manifest_path(manifest)
118-
.exec()
119-
.map_err(|_| VoyagerApiError::MetadataError {
120-
name: name.clone(),
121-
path: manifest.to_string_lossy().to_string(),
122-
})?;
115+
let new_meta =
116+
get_metadata_for_dir(manifest.parent().expect("manifest should have a parent"))
117+
.map_err(|_| VoyagerApiError::MetadataError {
118+
name: name.clone(),
119+
path: manifest.to_string_lossy().to_string(),
120+
})?;
123121
gather_packages(&new_meta, packages)?;
124122
}
125123

0 commit comments

Comments
 (0)