mix capstone.update (Capstone v0.33.3)

Copy Markdown View Source

Applies whatever plugins target.exs newly lists (SDD-adjacent; see docs/superpowers/specs/2026-08-26-plugin-ecosystem-design.md).

mix capstone.update [TARGET]

TARGET defaults to the current directory. Only plugins not already recorded in TARGET's plugin.exs are applied; nothing already applied is ever re-resolved or upgraded.

Summary

Functions

run/1 with the plugin registry directory (and, for tests, the sync effect) injected.

Functions

run(argv, registry_dir, sync \\ &Remote.sync!/2)

@spec run([String.t()], Path.t(), (atom(), Path.t() -> :ok)) :: :ok

run/1 with the plugin registry directory (and, for tests, the sync effect) injected.

The registry-dir seam exists so a test never resolves against Capstone.Plugin.Registry.default_dir/0 — the real, machine-global OS cache directory, shared across every project using capstone on this machine and across test runs. The sync seam exists for the same reason: without it, every test that seeds a local fixture archive would still reach out to the real GitHub release listing for that (never actually published) type.