Capstone.Plugin.Package (Capstone v0.33.3)

Copy Markdown View Source

Packages a derived plugin directory (what mix capstone.plugin.derive writes to priv/meta/meta_<name>/) into a versioned, content-addressed .tar.gz — see docs/superpowers/specs/2026-08-26-plugin-ecosystem-design.md.

Never re-derives: this module only reads what Capstone.Plugin.Derive already wrote and packages it byte-for-byte.

Summary

Functions

Packages the plugin directory dir, named type, into registry_dir.

Functions

run(type, dir, registry_dir)

@spec run(atom(), Path.t(), Path.t()) :: {:ok, Path.t()}

Packages the plugin directory dir, named type, into registry_dir.

Returns the path to the written archive. Two runs over identical dir content produce a byte-identical archive and therefore the same filename — the sha segment is a plain SHA-256 over the deterministic tar bytes, not Capstone.Hash's comment-insensitive normalisation: a package's identity must reflect the exact bytes it ships.