1pub fn default_signature_path(artifact: &std::path::Path, method: &str) -> std::path::PathBuf {
3 let ext = match method {
4 "cosign" => ".bundle",
5 "minisign" => ".minisig",
6 _ => ".sig",
7 };
8 let mut p = artifact.as_os_str().to_owned();
9 p.push(ext);
10 std::path::PathBuf::from(p)
11}
12
13#[cfg(test)]
14mod tests {
15 use super::*;
16 use std::path::{Path, PathBuf};
17
18 #[test]
19 fn default_sig_path_update() {
20 assert_eq!(
21 default_signature_path(Path::new("release.tar.gz"), "update"),
22 PathBuf::from("release.tar.gz.sig")
23 );
24 }
25
26 #[test]
27 fn default_sig_path_cosign() {
28 assert_eq!(
29 default_signature_path(Path::new("release.tar.gz"), "cosign"),
30 PathBuf::from("release.tar.gz.bundle")
31 );
32 }
33
34 #[test]
35 fn default_sig_path_minisign() {
36 assert_eq!(
37 default_signature_path(Path::new("release.tar.gz"), "minisign"),
38 PathBuf::from("release.tar.gz.minisig")
39 );
40 }
41
42 #[test]
43 fn default_sig_path_gpg() {
44 assert_eq!(
45 default_signature_path(Path::new("release.tar.gz"), "gpg"),
46 PathBuf::from("release.tar.gz.sig")
47 );
48 }
49}