# This formula is auto-generated by bin/build_brew.sh using homebrew-pypi-poet.
# To update: run bin/build_brew.sh, or trigger the GitHub Actions homebrew workflow.
#
# Users install with:
#   brew tap archivebox/archivebox
#   brew install archivebox

class Archivebox < Formula
  include Language::Python::Virtualenv

  desc "Self-hosted internet archiving solution"
  homepage "https://github.com/ArchiveBox/ArchiveBox"
  url "https://files.pythonhosted.org/packages/source/a/archivebox/archivebox-0.9.3.tar.gz"
  sha256 "" # auto-filled by bin/build_brew.sh
  license "MIT"
  head "https://github.com/ArchiveBox/ArchiveBox.git", branch: "dev"

  depends_on "python@3.13"
  depends_on "node"
  depends_on "git"
  depends_on "wget"
  depends_on "curl"
  depends_on "ripgrep"
  depends_on "yt-dlp"

  on_linux do
    depends_on "pkg-config" => :build
    depends_on "openssl@3"
    depends_on "libffi"
  end

  # Python dependency resource blocks are auto-generated by bin/build_brew.sh
  # using homebrew-pypi-poet. Run that script to populate this section.
  # AUTOGENERATED_RESOURCES_START
  # AUTOGENERATED_RESOURCES_END

  def install
    virtualenv_install_with_resources
  end

  def post_install
    # Install runtime dependencies (plugins, JS extractors, etc.)
    (var/"archivebox").mkpath
    with_env(DATA_DIR: var/"archivebox") do
      system bin/"archivebox", "install", "--binproviders", "pip,npm"
    end
  end

  service do
    run [opt_bin/"archivebox", "server", "--quick-init", "0.0.0.0:8000"]
    keep_alive crashed: true
    working_dir var/"archivebox"
    log_path var/"log/archivebox.log"
    error_log_path var/"log/archivebox.log"
  end

  test do
    assert_match version.to_s, shell_output("#{bin}/archivebox version")
  end
end
