Skip to content
This repository was archived by the owner on Dec 11, 2024. It is now read-only.

Commit 27c5464

Browse files
authored
Merge branch 'main' into docs/add-fragment
2 parents f2977a1 + 317c79f commit 27c5464

4 files changed

Lines changed: 64 additions & 72 deletions

File tree

.github/workflows/ci.yml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
name: CI
22

33
on:
4-
pull_request_target:
5-
types: [labeled]
4+
pull_request:
65
push:
76
branches: main
87
schedule:
@@ -22,7 +21,7 @@ jobs:
2221

2322
steps:
2423
- name: Checkout repository
25-
uses: actions/checkout@v3
24+
uses: actions/checkout@v4
2625

2726
- name: Install Rust toolchain
2827
uses: dtolnay/rust-toolchain@master
@@ -54,7 +53,7 @@ jobs:
5453
runs-on: ubuntu-latest
5554
steps:
5655
- name: Checkout repository
57-
uses: actions/checkout@v3
56+
uses: actions/checkout@v4
5857

5958
- name: Install Rust toolchain
6059
uses: dtolnay/rust-toolchain@stable
@@ -75,7 +74,7 @@ jobs:
7574
runs-on: ubuntu-latest
7675
steps:
7776
- name: Checkout repository
78-
uses: actions/checkout@v3
77+
uses: actions/checkout@v4
7978

8079
- name: Install nightly toolchain
8180
uses: dtolnay/rust-toolchain@nightly
@@ -101,7 +100,7 @@ jobs:
101100

102101
steps:
103102
- name: Checkout repository
104-
uses: actions/checkout@v3
103+
uses: actions/checkout@v4
105104

106105
- name: Audit crate dependencies
107106
uses: EmbarkStudios/cargo-deny-action@v1
@@ -113,7 +112,7 @@ jobs:
113112
runs-on: ubuntu-latest
114113
steps:
115114
- name: Checkout repository
116-
uses: actions/checkout@v3
115+
uses: actions/checkout@v4
117116

118117
- name: Install nightly Rust toolchain
119118
uses: dtolnay/rust-toolchain@nightly

.github/workflows/nightly.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313

1414
steps:
1515
- name: Checkout repository
16-
uses: actions/checkout@v3
16+
uses: actions/checkout@v4
1717
with:
1818
fetch-depth: 0
1919
token: ${{ secrets.GH_ADMIN_COMMIT_TOKEN }}
@@ -116,7 +116,7 @@ jobs:
116116

117117
steps:
118118
- name: Checkout repository
119-
uses: actions/checkout@v3
119+
uses: actions/checkout@v4
120120
with:
121121
ref: nightly
122122

.github/workflows/publish-and-release.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515

1616
steps:
1717
- name: Checkout
18-
uses: actions/checkout@v3
18+
uses: actions/checkout@v4
1919
with:
2020
fetch-depth: 0
2121
token: ${{ secrets.GH_ADMIN_COMMIT_TOKEN }}
@@ -108,7 +108,7 @@ jobs:
108108
runs-on: ubuntu-latest
109109
steps:
110110
- name: Checkout repository
111-
uses: actions/checkout@v3
111+
uses: actions/checkout@v4
112112
with:
113113
ref: ${{ needs.repo-prep.outputs.commit-hash }}
114114

@@ -142,7 +142,7 @@ jobs:
142142

143143
steps:
144144
- name: Checkout repository
145-
uses: actions/checkout@v3
145+
uses: actions/checkout@v4
146146
with:
147147
ref: ${{ needs.repo-prep.outputs.commit-hash }}
148148

src/main.rs

Lines changed: 53 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,8 @@ fn parse_resource_string(s: &str) -> Result<TrustResource> {
147147
}
148148
}
149149

150+
// We only construct one per invocation, not worth shrinking this.
151+
#[allow(clippy::large_enum_variant)]
150152
#[derive(Debug, Subcommand)]
151153
enum Commands {
152154
/// Sub-command to configure trust store options, "trust --help for more details"
@@ -264,46 +266,44 @@ fn configure_sdk(args: &CliArgs) -> Result<()> {
264266

265267
let mut enable_trust_checks = false;
266268

267-
match &args.command {
268-
Some(Commands::Trust {
269-
trust_anchors,
270-
allowed_list,
271-
trust_config,
272-
}) => {
273-
if let Some(trust_list) = &trust_anchors {
274-
let data = load_trust_resource(trust_list)?;
275-
debug!("Using trust anchors from {:?}", trust_list);
276-
let replacement_val = serde_json::Value::String(data).to_string(); // escape string
277-
let setting = ta.replace("replacement_val", &replacement_val);
278-
279-
c2pa::settings::load_settings_from_str(&setting, "json")?;
280-
281-
enable_trust_checks = true;
282-
}
269+
if let Some(Commands::Trust {
270+
trust_anchors,
271+
allowed_list,
272+
trust_config,
273+
}) = &args.command
274+
{
275+
if let Some(trust_list) = &trust_anchors {
276+
let data = load_trust_resource(trust_list)?;
277+
debug!("Using trust anchors from {:?}", trust_list);
278+
let replacement_val = serde_json::Value::String(data).to_string(); // escape string
279+
let setting = ta.replace("replacement_val", &replacement_val);
283280

284-
if let Some(allowed_list) = &allowed_list {
285-
let data = load_trust_resource(allowed_list)?;
286-
debug!("Using allowed list from {:?}", allowed_list);
287-
let replacement_val = serde_json::Value::String(data).to_string(); // escape string
288-
let setting = al.replace("replacement_val", &replacement_val);
281+
c2pa::settings::load_settings_from_str(&setting, "json")?;
289282

290-
c2pa::settings::load_settings_from_str(&setting, "json")?;
283+
enable_trust_checks = true;
284+
}
291285

292-
enable_trust_checks = true;
293-
}
286+
if let Some(allowed_list) = &allowed_list {
287+
let data = load_trust_resource(allowed_list)?;
288+
debug!("Using allowed list from {:?}", allowed_list);
289+
let replacement_val = serde_json::Value::String(data).to_string(); // escape string
290+
let setting = al.replace("replacement_val", &replacement_val);
291+
292+
c2pa::settings::load_settings_from_str(&setting, "json")?;
294293

295-
if let Some(trust_config) = &trust_config {
296-
let data = load_trust_resource(trust_config)?;
297-
debug!("Using trust config from {:?}", trust_config);
298-
let replacement_val = serde_json::Value::String(data).to_string(); // escape string
299-
let setting = tc.replace("replacement_val", &replacement_val);
294+
enable_trust_checks = true;
295+
}
300296

301-
c2pa::settings::load_settings_from_str(&setting, "json")?;
297+
if let Some(trust_config) = &trust_config {
298+
let data = load_trust_resource(trust_config)?;
299+
debug!("Using trust config from {:?}", trust_config);
300+
let replacement_val = serde_json::Value::String(data).to_string(); // escape string
301+
let setting = tc.replace("replacement_val", &replacement_val);
302302

303-
enable_trust_checks = true;
304-
}
303+
c2pa::settings::load_settings_from_str(&setting, "json")?;
304+
305+
enable_trust_checks = true;
305306
}
306-
_ => {}
307307
}
308308

309309
// if any trust setting is provided enable the trust checks
@@ -327,9 +327,9 @@ fn configure_sdk(args: &CliArgs) -> Result<()> {
327327
fn sign_fragmented(
328328
manifest: &mut Manifest,
329329
signer: &dyn Signer,
330-
init_pattern: &PathBuf,
330+
init_pattern: &Path,
331331
frag_pattern: &PathBuf,
332-
output_path: &PathBuf,
332+
output_path: &Path,
333333
) -> Result<()> {
334334
// search folders for init segments
335335
let ip = init_pattern.to_str().ok_or(c2pa::Error::OtherError(
@@ -370,7 +370,7 @@ fn sign_fragmented(
370370
Ok(())
371371
}
372372

373-
fn verify_fragmented(init_pattern: &PathBuf, frag_pattern: &PathBuf) -> Result<Vec<ManifestStore>> {
373+
fn verify_fragmented(init_pattern: &Path, frag_pattern: &Path) -> Result<Vec<ManifestStore>> {
374374
let mut stores = Vec::new();
375375

376376
let ip = init_pattern
@@ -446,11 +446,10 @@ fn main() -> Result<()> {
446446
return Ok(());
447447
}
448448

449-
let is_fragment = if let Some(Commands::Fragment { fragments_glob: _ }) = &args.command {
450-
true
451-
} else {
452-
false
453-
};
449+
let is_fragment = matches!(
450+
&args.command,
451+
Some(Commands::Fragment { fragments_glob: _ })
452+
);
454453

455454
// make sure path is not a glob when not fragmented
456455
if !args.path.is_file() && !is_fragment {
@@ -666,27 +665,21 @@ fn main() -> Result<()> {
666665
"{}",
667666
ManifestStoreReport::from_file(&args.path).map_err(special_errs)?
668667
)
669-
} else {
670-
if let Some(Commands::Fragment { fragments_glob }) = &args.command {
671-
if let Some(fg) = &fragments_glob {
672-
let stores = verify_fragmented(&args.path, fg)?;
673-
if stores.len() == 1 {
674-
println!("{}", stores[0]);
675-
} else {
676-
println!("{} Init manifests validated", stores.len());
677-
}
678-
} else {
679-
println!(
680-
"{}",
681-
ManifestStore::from_file(&args.path).map_err(special_errs)?
682-
)
683-
}
668+
} else if let Some(Commands::Fragment {
669+
fragments_glob: Some(fg),
670+
}) = &args.command
671+
{
672+
let stores = verify_fragmented(&args.path, fg)?;
673+
if stores.len() == 1 {
674+
println!("{}", stores[0]);
684675
} else {
685-
println!(
686-
"{}",
687-
ManifestStore::from_file(&args.path).map_err(special_errs)?
688-
)
676+
println!("{} Init manifests validated", stores.len());
689677
}
678+
} else {
679+
println!(
680+
"{}",
681+
ManifestStore::from_file(&args.path).map_err(special_errs)?
682+
)
690683
}
691684

692685
Ok(())

0 commit comments

Comments
 (0)