Casks/g/ghidra.rb
cask "ghidra" do
version "11.1.2,20240709"
sha256 "219ec130b901645779948feeb7cc86f131dd2da6c36284cf538c3a7f3d44b588"
url "https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_#{version.csv.first}_build/ghidra_#{version.csv.first}_PUBLIC_#{version.csv.second}.zip",
verified: "github.com/NationalSecurityAgency/ghidra/"
name "Ghidra"
desc "Software reverse engineering (SRE) suite of tools"
homepage "https://www.ghidra-sre.org/"
livecheck do
url :url
regex(/^ghidra[._-]v?(\d+(?:\.\d+)+)[._-]PUBLIC[._-](\d+)\.zip$/i)
strategy :github_latest do |json, regex|
json["assets"]&.map do |asset|
match = asset["name"]&.match(regex)
next if match.blank?
"#{match[1]},#{match[2]}"
end
end
end
binary "#{caskroom_path}/#{version.csv.first}-#{version.csv.second}/ghidra_#{version.csv.first}_PUBLIC/ghidraRun"
preflight do
# Log4j misinterprets comma in staged_path as alternative delimiter
FileUtils.mv(staged_path, "#{caskroom_path}/#{version.csv.first}-#{version.csv.second}")
end
uninstall_preflight do
FileUtils.mv("#{caskroom_path}/#{version.csv.first}-#{version.csv.second}", staged_path)
end
zap trash: "~/.ghidra"
caveats do
depends_on_java "17+"
requires_rosetta
end
end