class Fabric < Formula include Language::Python::Virtualenv desc "Library and command-line tool for SSH" homepage "https://www.fabfile.org/" url "https://files.pythonhosted.org/packages/1f/36/9969093324a67cee916f484eda7b3547e8f8e6077f5f2a1814cde80d6fc2/fabric-2.7.1.tar.gz" sha256 "76f8fef59cf2061dbd849bbce4fe49bdd820884385004b0ca59136ac3db129e4" license "BSD-2-Clause" revision 1 head "https://github.com/fabric/fabric.git", branch: "main" bottle do sha256 cellar: :any, arm64_ventura: "a1a7be20ae24e6473efe6b1ba4c4c7e2642ab6d3bb3f7408f5cd3b878c2ae953" sha256 cellar: :any, arm64_monterey: "413c265c7f8c0eca5f518999f2fb9e31e5c605a3d00476f52024290932ceb4d0" sha256 cellar: :any, arm64_big_sur: "6a7c6299830e150b00b293fcdd0e3d40b8c25c622dce285dac1109fd970f70de" sha256 cellar: :any, ventura: "37ad2531d247c000d436e7f967f11ae8297d7d591df339aad718109527eaa56a" sha256 cellar: :any, monterey: "d669622ff80f57dbf306736aea82205e09e6dce871f4909e19673484c8bdc496" sha256 cellar: :any, big_sur: "75276bc6e1f60bb7f9671b1130f39c2309dfc450341c2bb42ecb9bafdf7f1408" sha256 cellar: :any_skip_relocation, x86_64_linux: "c7ca89bcb09a9a20f1982cd1e9b4943a30621b8c953ab05533138217e32bb953" end depends_on "rust" => :build depends_on "openssl@1.1" depends_on "pyinvoke" depends_on "python@3.11" depends_on "six" resource "bcrypt" do url "https://files.pythonhosted.org/packages/8c/ae/3af7d006aacf513975fd1948a6b4d6f8b4a307f8a244e1a3d3774b297aad/bcrypt-4.0.1.tar.gz" sha256 "27d375903ac8261cfe4047f6709d16f7d18d39b1ec92aaf72af989552a650ebd" end resource "cffi" do url "https://files.pythonhosted.org/packages/2b/a8/050ab4f0c3d4c1b8aaa805f70e26e84d0e27004907c5b8ecc1d31815f92a/cffi-1.15.1.tar.gz" sha256 "d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9" end resource "cryptography" do url "https://files.pythonhosted.org/packages/12/e3/c46c274cf466b24e5d44df5d5cd31a31ff23e57f074a2bb30931a8c9b01a/cryptography-39.0.0.tar.gz" sha256 "f964c7dcf7802d133e8dbd1565914fa0194f9d683d82411989889ecd701e8adf" end resource "paramiko" do url "https://files.pythonhosted.org/packages/98/75/e78ddbe671a4a59514b59bc6a321263118e4ac3fe88175dd784d1a47a00f/paramiko-2.12.0.tar.gz" sha256 "376885c05c5d6aa6e1f4608aac2a6b5b0548b1add40274477324605903d9cd49" end resource "pathlib2" do url "https://files.pythonhosted.org/packages/31/51/99caf463dc7c18eb18dad1fffe465a3cf3ee50ac3d1dccbd1781336fe9c7/pathlib2-2.3.7.post1.tar.gz" sha256 "9fe0edad898b83c0c3e199c842b27ed216645d2e177757b2dd67384d4113c641" end resource "pycparser" do url "https://files.pythonhosted.org/packages/5e/0b/95d387f5f4433cb0f53ff7ad859bd2c6051051cebbb564f139a999ab46de/pycparser-2.21.tar.gz" sha256 "e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206" end resource "PyNaCl" do url "https://files.pythonhosted.org/packages/a7/22/27582568be639dfe22ddb3902225f91f2f17ceff88ce80e4db396c8986da/PyNaCl-1.5.0.tar.gz" sha256 "8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba" end def install virtualenv_install_with_resources # we depend on pyinvoke, but that's a separate formula, so install a `.pth` file to link them site_packages = Language::Python.site_packages("python3.11") pyinvoke = Formula["pyinvoke"].opt_libexec (libexec/site_packages/"homebrew-pyinvoke.pth").write pyinvoke/site_packages end test do (testpath/"fabfile.py").write <<~EOS from invoke import task import fabric @task def hello(c): c.run("echo {}".format(fabric.__version__)) EOS assert_equal version.to_s, shell_output("#{bin}/fab hello").chomp end end