Files
tigerbrew/Library/Formula/gpatch.rb
2024-12-26 22:39:09 -08:00

49 lines
1.4 KiB
Ruby

class Gpatch < Formula
desc "Apply a diff file to an original"
homepage "https://savannah.gnu.org/projects/patch/"
url "https://ftp.gnu.org/gnu/patch/patch-2.7.6.tar.xz"
mirror "https://ftpmirror.gnu.org/patch/patch-2.7.6.tar.xz"
sha256 "ac610bda97abe0d9f6b7c963255a11dcb196c25e337c61f94e4778d632f1d8fd"
license "GPL-3.0-or-later"
bottle do
sha256 "be2c7778681f69650654614191a134d075ec98bbf868605c6d40147038dc69d2" => :tiger_altivec
end
def install
system "./configure", "--disable-dependency-tracking",
"--disable-silent-rules",
"--prefix=#{prefix}",
"--program-prefix=g"
system "make", "install"
# Symlink the executable into libexec/gnubin as "patch"
(libexec/"gnubin").install_symlink bin/"gpatch" => "patch"
(libexec/"gnuman/man1").install_symlink man1/"gpatch.1" => "patch.1"
(libexec/"gnubin").install_symlink "../gnuman" => "man"
end
def caveats
<<~EOS
GNU "patch" has been installed as "gpatch".
If you need to use it as "patch", you can add a "gnubin" directory
to your PATH from your bashrc like:
PATH="#{opt_libexec}/gnubin:$PATH"
EOS
end
test do
testfile = testpath/"test"
testfile.write "homebrew\n"
patch = <<~EOS
1c1
< homebrew
---
> hello
EOS
pipe_output("#{bin}/gpatch #{testfile}", patch)
assert_equal "hello", testfile.read.chomp
end
end