diff --git a/.github/autobump.txt b/.github/autobump.txt index 9a5239c7d306f..9170b776a2873 100644 --- a/.github/autobump.txt +++ b/.github/autobump.txt @@ -2526,6 +2526,7 @@ procps procs proftpd proj +projectable prometheus prometheus-cpp promptfoo diff --git a/Formula/p/projectable.rb b/Formula/p/projectable.rb new file mode 100644 index 0000000000000..26affc52b178b --- /dev/null +++ b/Formula/p/projectable.rb @@ -0,0 +1,39 @@ +class Projectable < Formula + desc "TUI file manager built for projects" + homepage "https://dzfrias.dev/blog/projectable" + url "https://github.com/dzfrias/projectable/archive/refs/tags/1.3.0.tar.gz" + sha256 "fe1c0edf9f14f2cd9cfef7e9af921f3e4b307b5c518a7b79f96563d6269a1e72" + license "MIT" + head "https://github.com/dzfrias/projectable.git", branch: "main" + + depends_on "pkgconf" => :build + depends_on "rust" => :build + depends_on "openssl@3" + + uses_from_macos "zlib" + + def install + # Ensure that the `openssl` crate picks up the intended library. + ENV["OPENSSL_DIR"] = Formula["openssl@3"].opt_prefix + ENV["OPENSSL_NO_VENDOR"] = "1" + + system "cargo", "install", *std_cargo_args + end + + test do + assert_match version.to_s, shell_output("#{bin}/prj --version") + + # Fails in Linux CI with "No such device or address (os error 6)" + return if OS.linux? && ENV["HOMEBREW_GITHUB_ACTIONS"] + + begin + output_log = testpath/"output.log" + pid = spawn bin/"prj", testpath, [:out, :err] => output_log.to_s + sleep 1 + assert_match "output.log", output_log.read + ensure + Process.kill("TERM", pid) + Process.wait(pid) + end + end +end