class ProjectCanon < Formula
desc "The project-canon binary — conformance verbs plus binary-owned distribution of the AI-first CLI canon and companion cli-canon skill."
homepage "https://github.com/jarimustonen/project-canon"
version "0.6.1"
if OS.mac? && Hardware::CPU.arm?
url "https://github.com/jarimustonen/project-canon/releases/download/v0.6.1/project-canon-cli-aarch64-apple-darwin.tar.xz"
sha256 "530208fe48aa3c38d442b06a1c9757d3d43a0fa9c8a7b7a5f1ce56af28f59812"
end
if OS.linux?
if Hardware::CPU.arm?
url "https://github.com/jarimustonen/project-canon/releases/download/v0.6.1/project-canon-cli-aarch64-unknown-linux-musl.tar.xz"
sha256 "f801584621208bbaa73bc8a3841d62aa18b52ef60bc5ded715d260db18c7c7b4"
end
if Hardware::CPU.intel?
url "https://github.com/jarimustonen/project-canon/releases/download/v0.6.1/project-canon-cli-x86_64-unknown-linux-musl.tar.xz"
sha256 "1fe9de2a1b2db57b951926bb3647252a71cb209d985f0336e9ebd6b2dcbc8ad2"
end
end
license "MIT"
BINARY_ALIASES = {
"aarch64-apple-darwin": {},
"aarch64-unknown-linux-gnu": {},
"aarch64-unknown-linux-musl-dynamic": {},
"aarch64-unknown-linux-musl-static": {},
"x86_64-unknown-linux-gnu": {},
"x86_64-unknown-linux-musl-dynamic": {},
"x86_64-unknown-linux-musl-static": {},
}.freeze
def target_triple
cpu = Hardware::CPU.arm? ? "aarch64" : "x86_64"
os = OS.mac? ? "apple-darwin" : "unknown-linux-gnu"
"#{cpu}-#{os}"
end
def install_binary_aliases!
BINARY_ALIASES[target_triple.to_sym].each do |source, dests|
dests.each do |dest|
bin.install_symlink bin/source.to_s => dest
end
end
end
def install
if OS.mac? && Hardware::CPU.arm?
bin.install "project-canon"
end
if OS.linux? && Hardware::CPU.arm?
bin.install "project-canon"
end
if OS.linux? && Hardware::CPU.intel?
bin.install "project-canon"
end
install_binary_aliases!
doc_files = Dir["README.*", "readme.*", "LICENSE", "LICENSE.*", "CHANGELOG.*"]
leftover_contents = Dir["*"] - doc_files
pkgshare.install(*leftover_contents) unless leftover_contents.empty?
end
end