class DnsServerMos < Formula
  desc "MenuBarDNS — macOS menu bar DNS server (binary-only, no source build)"
  version "1.1.0"

  if Hardware::CPU.arm?
    url "https://shyamalschandra.github.io/dns-server-mos/releases/dns-server-mos-1.1.0-arm64.enc"
    sha256 "59809e12dd6f04c2ef929771f29b3dc74ecbe08354615e81925aeb238cbf70ee"
  else
    odie "dns-server-mos: Intel binary release is not published yet."
  end

  depends_on macos: :ventura
  depends_on "openssl@3"

  def release_key
    p1 = "bWJkbnMtcHJvZA=="
    p2 = "LTdmM2E5YzJlMWI4ZDRmNmEwZTVjOWIyZDhmMWE0ZTc="
    Base64.decode64(p1) + Base64.decode64(p2)
  end

  def install
    enc = cached_download
    tarball = buildpath/"payload.tar.gz"
    system Formula["openssl@3"].opt_bin/"openssl", "enc", "-d",
           "-aes-256-cbc", "-pbkdf2", "-iter", "250000",
           "-pass", "pass:#{release_key}",
           "-in", enc, "-out", tarball
    odie "decryption failed" unless tarball.exist?
    cd buildpath do
      system "tar", "-xzf", tarball
    end
    bin.install "payload/bin/dns-server-mos"
    prefix.install "payload/app/MenuBarDNS.app"
  end
end
