pub struct HomebrewCaskConfig {Show 33 fields
pub name: Option<String>,
pub alternative_names: Option<Vec<String>>,
pub repository: Option<RepositoryConfig>,
pub commit_author: Option<CommitAuthorConfig>,
pub commit_msg_template: Option<String>,
pub directory: Option<String>,
pub ids: Option<Vec<String>>,
pub url_template: Option<String>,
pub url: Option<HomebrewCaskURL>,
pub app: Option<String>,
pub binaries: Option<Vec<HomebrewCaskBinary>>,
pub legacy_binary: Option<String>,
pub description: Option<String>,
pub homepage: Option<String>,
pub license: Option<String>,
pub caveats: Option<String>,
pub custom_block: Option<String>,
pub service: Option<String>,
pub livecheck: Option<HomebrewLivecheck>,
pub manpages: Option<Vec<String>>,
pub legacy_manpage: Option<String>,
pub completions: Option<HomebrewCaskCompletions>,
pub generate_completions_from_executable: Option<HomebrewCaskGeneratedCompletions>,
pub dependencies: Option<Vec<HomebrewCaskDependencyEntry>>,
pub conflicts: Option<Vec<HomebrewCaskConflictEntry>>,
pub hooks: Option<HomebrewCaskHooks>,
pub uninstall: Option<HomebrewCaskUninstall>,
pub zap: Option<HomebrewCaskUninstall>,
pub skip_upload: Option<StringOrBool>,
pub update_existing_pr: Option<StringOrBool>,
pub required: Option<bool>,
pub if_condition: Option<String>,
pub retain_on_rollback: Option<bool>,
}Expand description
Unified Homebrew Cask configuration.
Used at both call-sites:
homebrew_casks:— top-level array; carriesrepository,commit_author,directory,ids,url, structureduninstall/zap, etc.crates[].publish.homebrew_cask:— per-crate override; same shape, withurl_templateas the simpler URL alternative.
Fields from both original types are present; any field may be None at either
call-site. The union avoids a two-type bifurcation while keeping both axes.
Fields§
§name: Option<String>Cask name (default: crate / project name).
alternative_names: Option<Vec<String>>Alternative cask names (aliases).
repository: Option<RepositoryConfig>Unified repository config for the Homebrew tap.
Commit author with optional signing.
commit_msg_template: Option<String>Custom commit message template. Default: “Brew cask update for {{ ProjectName }} version {{ Tag }}”
directory: Option<String>Subdirectory in the tap repo for cask placement (default: “Casks”).
ids: Option<Vec<String>>Build IDs filter: only include artifacts from builds whose id is in this list.
url_template: Option<String>Simple URL template for the .dmg/.zip download (per-crate shorthand).
Cannot be combined with url.template: — set one or the other.
If both are present, config validation rejects the config at parse time.
Use url: for the structured form (verified domain, custom headers, etc.)
or url_template: for a bare string shorthand — never both simultaneously.
url: Option<HomebrewCaskURL>Structured download URL configuration (top-level axis).
app: Option<String>macOS .app bundle name (e.g. “MyApp.app”).
binaries: Option<Vec<HomebrewCaskBinary>>Binary stubs to create in /usr/local/bin.
Each entry is either a bare string ("my-cli" → emits
binary "my-cli") or a structured { name, target } object
({ name: "my-cli", target: "mycli" } → emits
binary "my-cli", target: "mycli"). The target: form mirrors
the Homebrew Ruby cask DSL for binary renames — without it, a
wrapped binary installs at the wrong path.
Cask binary entry.
legacy_binary: Option<String>Deprecated singular spelling of Self::binaries. The upstream
replaced binary: foo with binaries: [foo]; this field captures the
legacy spelling so imported configs keep parsing.
apply_homebrew_cask_legacy_singulars
folds the value into Self::binaries at config-load time and emits
a one-time deprecation warning per occurrence. The field is excluded
from serialization so a round-tripped config emits only the canonical
plural form.
description: Option<String>Cask description.
homepage: Option<String>Project homepage URL.
license: Option<String>License identifier (SPDX).
caveats: Option<String>Custom caveats shown after install.
custom_block: Option<String>Arbitrary Ruby code inserted into the cask block.
service: Option<String>Homebrew service definition.
livecheck: Option<HomebrewLivecheck>livecheck stanza configuration for the cask. When unset, the cask
emits livecheck do\n skip "Auto-generated on release."\nend (a
binary cask’s download URL/sha256 are rewritten on every release, so
brew livecheck has nothing stable to poll). Set strategy: /
url: / regex: (with skip: false) to opt into active version
detection — the same shape a Homebrew cask livecheck do … end
block accepts. Reuses the formula livecheck config type.
manpages: Option<Vec<String>>Manual page references to install.
legacy_manpage: Option<String>Deprecated singular spelling of Self::manpages. The upstream replaced
manpage: foo.1 with manpages: [foo.1]; this field captures the
legacy spelling so imported configs keep parsing.
apply_homebrew_cask_legacy_singulars
folds the value into Self::manpages at config-load time and emits
a one-time deprecation warning per occurrence. The field is excluded
from serialization so a round-tripped config emits only the canonical
plural form.
completions: Option<HomebrewCaskCompletions>Shell completion definitions.
generate_completions_from_executable: Option<HomebrewCaskGeneratedCompletions>Auto-generate shell completions from an executable.
dependencies: Option<Vec<HomebrewCaskDependencyEntry>>Cask dependencies (other casks or formulae).
conflicts: Option<Vec<HomebrewCaskConflictEntry>>Conflicting casks or formulae.
hooks: Option<HomebrewCaskHooks>Pre/post install/uninstall hooks.
uninstall: Option<HomebrewCaskUninstall>Structured uninstall stanza configuration.
zap: Option<HomebrewCaskUninstall>Deep uninstall (zap) stanza configuration.
skip_upload: Option<StringOrBool>Skip publishing the cask. "true" always skips; "auto" skips
for prerelease versions. Accepts bool or template string.
update_existing_pr: Option<StringOrBool>When true, force-push the updated cask file to the existing PR branch when a PR for the same head branch already exists. The PR content is updated in place rather than creating a duplicate. When false (default), the push is skipped and a warning is emitted so the operator sees that the publisher did not update the PR.
required: Option<bool>Override whether this publisher failing should fail the overall release.
Default: false — a failure here is logged but does not abort the release.
Set to true to fail the release on any error.
if_condition: Option<String>Template-conditional gate: when the rendered result is falsy
("false" / "0" / "no" / empty), the Homebrew Cask config is
skipped. Render failure hard-errors. Config key: homebrew_casks[].if:.
retain_on_rollback: Option<bool>When true, a triggered rollback leaves this publisher’s work in
place rather than attempting to undo it. Default false.
Trait Implementations§
Source§impl Clone for HomebrewCaskConfig
impl Clone for HomebrewCaskConfig
Source§fn clone(&self) -> HomebrewCaskConfig
fn clone(&self) -> HomebrewCaskConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for HomebrewCaskConfig
impl Debug for HomebrewCaskConfig
Source§impl Default for HomebrewCaskConfig
impl Default for HomebrewCaskConfig
Source§fn default() -> HomebrewCaskConfig
fn default() -> HomebrewCaskConfig
Source§impl<'de> Deserialize<'de> for HomebrewCaskConfigwhere
HomebrewCaskConfig: Default,
impl<'de> Deserialize<'de> for HomebrewCaskConfigwhere
HomebrewCaskConfig: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for HomebrewCaskConfig
impl JsonSchema for HomebrewCaskConfig
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PublisherGateOverrides for HomebrewCaskConfig
impl PublisherGateOverrides for HomebrewCaskConfig
Source§fn required_override(&self) -> Option<bool>
fn required_override(&self) -> Option<bool>
required: override. None keeps the publisher’s
built-in default; Some(true) anywhere escalates the release gate.Source§fn retain_on_rollback_override(&self) -> Option<bool>
fn retain_on_rollback_override(&self) -> Option<bool>
retain_on_rollback: override. Some(true) anywhere
opts the publisher’s successful work out of rollback.