Files
kandev/scripts/release/kandev.rb
T

49 lines
1.7 KiB
Ruby

# Template used by update-homebrew-tap.sh. Placeholder strings are replaced at
# release time before this formula is pushed to kdlbs/homebrew-kandev.
class Kandev < Formula
desc "Manage tasks, orchestrate agents, review changes, and ship value"
homepage "https://github.com/kdlbs/kandev"
license "AGPL-3.0-only"
version "__VERSION__"
# Node is required: the CLI launcher and Next.js standalone server both need it.
depends_on "node"
on_macos do
if Hardware::CPU.arm?
url "__GITHUB_BASE__/kandev-macos-arm64.tar.gz"
sha256 "__SHA_MACOS_ARM64__"
else
url "__GITHUB_BASE__/kandev-macos-x64.tar.gz"
sha256 "__SHA_MACOS_X64__"
end
end
on_linux do
if Hardware::CPU.arm?
url "__GITHUB_BASE__/kandev-linux-arm64.tar.gz"
sha256 "__SHA_LINUX_ARM64__"
else
url "__GITHUB_BASE__/kandev-linux-x64.tar.gz"
sha256 "__SHA_LINUX_X64__"
end
end
def install
libexec.install Dir["*"]
# cli/bin/cli.js has #!/usr/bin/env node shebang. (bin/"kandev").write_env_script
# creates a wrapper at $HOMEBREW_PREFIX/bin/kandev that sets KANDEV_BUNDLE_DIR
# (so the CLI launcher finds bin/ and web/ in the Cellar) and KANDEV_VERSION
# (read by run.ts at startup so the launcher logs "release: X.Y.Z" instead of
# "release: (env)"). Calling write_env_script on the bin directory itself would
# name the wrapper after the target's basename (cli.js), giving the wrong name.
(bin/"kandev").write_env_script libexec/"cli/bin/cli.js",
KANDEV_BUNDLE_DIR: libexec.to_s,
KANDEV_VERSION: version.to_s
end
test do
assert_match "kandev launcher", shell_output("#{bin}/kandev --help")
end
end