cargo_codesign/config/
mod.rs1pub mod resolve;
2
3use serde::Deserialize;
4use std::path::PathBuf;
5
6#[derive(Debug, Deserialize, Default)]
7#[serde(deny_unknown_fields)]
8pub struct SignConfig {
9 pub macos: Option<MacosConfig>,
10 pub windows: Option<WindowsConfig>,
11 pub linux: Option<LinuxConfig>,
12 pub update: Option<UpdateConfig>,
13 pub status: Option<StatusConfig>,
14}
15
16#[derive(Debug, Deserialize, PartialEq, Eq)]
19#[serde(rename_all = "kebab-case")]
20pub enum MacosAuth {
21 ApiKey,
22 AppleId,
23}
24
25#[derive(Debug, Deserialize)]
26#[serde(deny_unknown_fields)]
27pub struct MacosConfig {
28 pub identity: Option<String>,
29 pub entitlements: Option<PathBuf>,
30 pub auth: MacosAuth,
31 pub env: MacosEnvConfig,
32 pub dmg: Option<DmgConfig>,
33}
34
35#[derive(Debug, Deserialize)]
36#[serde(deny_unknown_fields, rename_all = "kebab-case")]
37pub struct DmgConfig {
38 pub background: PathBuf,
39 pub window_size: [u32; 2],
40 pub icon_size: u32,
41 pub app_position: [u32; 2],
42 pub app_drop_link: [u32; 2],
43}
44
45#[derive(Debug, Deserialize, Default)]
46#[serde(deny_unknown_fields, rename_all = "kebab-case")]
47pub struct MacosEnvConfig {
48 pub certificate: Option<String>,
50 pub certificate_password: Option<String>,
51 pub notarization_key: Option<String>,
52 pub notarization_key_id: Option<String>,
53 pub notarization_issuer: Option<String>,
54 pub apple_id: Option<String>,
56 pub team_id: Option<String>,
57 pub app_password: Option<String>,
58}
59
60#[derive(Debug, Deserialize)]
63#[serde(deny_unknown_fields, rename_all = "kebab-case")]
64pub struct WindowsConfig {
65 pub timestamp_server: Option<String>,
66 pub env: WindowsEnvConfig,
67}
68
69#[derive(Debug, Deserialize, Default)]
70#[serde(deny_unknown_fields, rename_all = "kebab-case")]
71pub struct WindowsEnvConfig {
72 pub tenant_id: Option<String>,
73 pub client_id: Option<String>,
74 pub client_secret: Option<String>,
75 pub endpoint: Option<String>,
76 pub account_name: Option<String>,
77 pub cert_profile: Option<String>,
78}
79
80#[derive(Debug, Clone, Copy, Deserialize, PartialEq, Eq)]
83#[serde(rename_all = "lowercase")]
84pub enum LinuxMethod {
85 Cosign,
86 Minisign,
87 Gpg,
88}
89
90#[derive(Debug, Deserialize)]
91#[serde(deny_unknown_fields)]
92pub struct LinuxConfig {
93 pub method: LinuxMethod,
94 pub env: LinuxEnvConfig,
95}
96
97#[derive(Debug, Deserialize, Default)]
98#[serde(deny_unknown_fields)]
99pub struct LinuxEnvConfig {
100 pub key: Option<String>,
101}
102
103#[derive(Debug, Deserialize)]
106#[serde(deny_unknown_fields, rename_all = "kebab-case")]
107pub struct UpdateConfig {
108 pub public_key: Option<PathBuf>,
109 pub env: UpdateEnvConfig,
110}
111
112#[derive(Debug, Deserialize, Default)]
113#[serde(deny_unknown_fields, rename_all = "kebab-case")]
114pub struct UpdateEnvConfig {
115 pub signing_key: Option<String>,
116}
117
118#[derive(Debug, Deserialize)]
121#[serde(deny_unknown_fields, rename_all = "kebab-case")]
122pub struct StatusConfig {
123 pub cert_warn_days: Option<u32>,
124 pub cert_error_days: Option<u32>,
125}