Skip to content

Commit 676e6d6

Browse files
committed
Skip nondocable crates
1 parent 3ca80f7 commit 676e6d6

File tree

3 files changed

+29
-10
lines changed

3 files changed

+29
-10
lines changed

src/cmd/doc.rs

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ pub struct Args {
99
/// Build docs for only these crates (must be publishable)
1010
#[clap(long = "crate")]
1111
pub crates: Vec<String>,
12-
12+
1313
/// Output directory for generated documentation
1414
#[clap(short, long)]
1515
pub output: PathBuf,
@@ -20,7 +20,7 @@ pub fn run(ctx: &Context, args: Args) -> Result<()> {
2020
// Build docs for all publishable crates
2121
ctx.crates
2222
.iter()
23-
.filter(|(_, crate_info)| crate_info.publish)
23+
.filter(|(_, crate_info)| crate_info.publish && crate_info.doc)
2424
.map(|(crate_id, _)| crate_id.clone())
2525
.collect()
2626
} else {
@@ -31,6 +31,10 @@ pub fn run(ctx: &Context, args: Args) -> Result<()> {
3131
anyhow::bail!("Crate '{}' not found", crate_name);
3232
}
3333
let crate_info = &ctx.crates[crate_name];
34+
if !crate_info.doc {
35+
println!("⚠️ Skipping non-documentable crate: {}", crate_name);
36+
continue;
37+
}
3438
if !crate_info.publish {
3539
println!("⚠️ Skipping non-publishable crate: {}", crate_name);
3640
continue;
@@ -53,30 +57,34 @@ pub fn run(ctx: &Context, args: Args) -> Result<()> {
5357
let crate_info = &ctx.crates[crate_id];
5458
let input_path = &crate_info.path;
5559
let output_path = args.output.join("crates").join(crate_id).join("git.zup");
56-
60+
5761
println!("Building docs for crate: {}", crate_id);
58-
62+
5963
let mut cmd = Command::new("docserver");
6064
cmd.arg("build")
6165
.arg("-i")
6266
.arg(input_path)
6367
.arg("-o")
6468
.arg(&output_path);
65-
69+
6670
// Add --output-static for the first docserver invocation
6771
if is_first_invocation {
6872
let static_output = args.output.join("static");
6973
cmd.arg("--output-static").arg(&static_output);
7074
is_first_invocation = false;
7175
}
72-
76+
7377
match cmd.status() {
7478
Ok(status) if status.success() => {
7579
println!("✅ Successfully built docs for {}", crate_id);
7680
success_count += 1;
7781
}
7882
Ok(status) => {
79-
eprintln!("❌ Failed to build docs for {} (exit code: {:?})", crate_id, status.code());
83+
eprintln!(
84+
"❌ Failed to build docs for {} (exit code: {:?})",
85+
crate_id,
86+
status.code()
87+
);
8088
failed_crates.push(crate_id.clone());
8189
}
8290
Err(e) => {
@@ -88,14 +96,17 @@ pub fn run(ctx: &Context, args: Args) -> Result<()> {
8896

8997
println!("\nSummary:");
9098
println!("✅ Successfully built docs for {} crates", success_count);
91-
99+
92100
if !failed_crates.is_empty() {
93-
println!("❌ Failed to build docs for {} crates:", failed_crates.len());
101+
println!(
102+
"❌ Failed to build docs for {} crates:",
103+
failed_crates.len()
104+
);
94105
for crate_name in &failed_crates {
95106
println!(" - {}", crate_name);
96107
}
97108
anyhow::bail!("Failed to build docs for {} crates", failed_crates.len());
98109
}
99110

100111
Ok(())
101-
}
112+
}

src/main.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ fn list_crates(root: &PathBuf) -> Result<BTreeMap<CrateId, Crate>> {
9898
build_dependencies,
9999
configs,
100100
publish: parsed.package.publish,
101+
doc: parsed.package.metadata.embassy_docs.is_some(),
101102
},
102103
);
103104
}

src/types.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ fn default_publish() -> bool {
3232
pub struct Metadata {
3333
#[serde(default)]
3434
pub embassy: MetadataEmbassy,
35+
#[serde(default)]
36+
pub embassy_docs: Option<MetadataEmbassyDocs>,
3537
}
3638

3739
#[allow(dead_code)]
@@ -43,6 +45,10 @@ pub struct MetadataEmbassy {
4345
pub build: Vec<BuildConfig>,
4446
}
4547

48+
// used just to check for presence.
49+
#[derive(Debug, Deserialize, Default)]
50+
pub struct MetadataEmbassyDocs {}
51+
4652
#[derive(Debug, Clone, Deserialize, Default)]
4753
pub struct BuildConfig {
4854
pub group: Option<String>,
@@ -69,6 +75,7 @@ pub struct Crate {
6975
pub dev_dependencies: Vec<CrateId>,
7076
pub configs: Vec<BuildConfig>,
7177
pub publish: bool,
78+
pub doc: bool,
7279
}
7380

7481
impl Crate {

0 commit comments

Comments
 (0)