fix: made the macos app smaller

This commit is contained in:
2026-07-18 10:20:54 +02:00
parent c77450d497
commit 593f1646a1
8 changed files with 166 additions and 32 deletions

View File

@@ -56,7 +56,8 @@ defmodule BDS.ReleasePackaging do
app_release_source = Keyword.fetch!(opts, :app_release_source)
mcp_release_source = Keyword.fetch!(opts, :mcp_release_source)
with :ok <- reset_output(metadata),
with :ok <- validate_release_source(app_release_source),
:ok <- reset_output(metadata),
:ok <- copy_release(app_release_source, metadata.app_root),
:ok <- copy_release(mcp_release_source, metadata.resources_root),
:ok <- write_manifest(metadata),
@@ -65,6 +66,20 @@ defmodule BDS.ReleasePackaging do
end
end
@doc """
Rejects half-assembled releases. A failed `mix release` run can leave `lib/`
copied but no `releases/<version>/` (no `env.sh`, no boot scripts) — packaging
that produces an app that dies on launch. Refuse it up front instead.
"""
def validate_release_source(release_dir) do
if release_dir |> Path.join("releases/*/env.sh") |> Path.wildcard() == [] do
{:error,
{:incomplete_release, "#{release_dir} has no releases/*/env.sh — did `mix release` fail?"}}
else
:ok
end
end
defp normalize_platform(platform) when platform in [:macos, :linux, :windows], do: platform
defp normalize_platform(:darwin), do: :macos