class Sail < Formula include Language::Python::Virtualenv desc "CLI toolkit to provision and deploy WordPress applications to DigitalOcean" homepage "https://sailed.io" url "https://files.pythonhosted.org/packages/3a/6c/39b5e5e0ce557ddd98b6af0223b7a63afcc40b3646ee1a2511805dc45a08/sailed.io-0.10.6.tar.gz" sha256 "158ed9f03bcbcefa080647da90bc64d0acdec26514a3635a2843233eea90efa0" license "GPL-3.0-only" bottle do rebuild 2 sha256 cellar: :any_skip_relocation, arm64_ventura: "f6e9a659f09618f2535f22cf44029baff8652bec0ed090b701f6257c30d33a96" sha256 cellar: :any_skip_relocation, arm64_monterey: "5b33a2bfe41061d2fd8234d6ae4f3a217ec648fd6218d7b8494b59ae1dab1053" sha256 cellar: :any_skip_relocation, arm64_big_sur: "0c138bd71de3bd6eb49602bc765e743c282fa6bc18dac74ed8f4dadd5fcebcb2" sha256 cellar: :any_skip_relocation, ventura: "1d954ef1db8c2c445662048923c3394f1d25b9cd688fbdfc31eb5b61e2b516e9" sha256 cellar: :any_skip_relocation, monterey: "e9a94b7de2702591bf018ed4d53856d168f5e4dcb3877fcf7665090096493991" sha256 cellar: :any_skip_relocation, big_sur: "2e245cc16f8a40a9ee13bf6c8db4884d1398c0d940b242ab29575c170998ba0d" sha256 cellar: :any_skip_relocation, catalina: "ee2038dfa0d9e0803fa1e1a722ee6d0d3c3a7fd85e81f60e5f0526fc8e53a225" sha256 cellar: :any_skip_relocation, x86_64_linux: "3ba356ef6932592097bd0abb07498952008e4cc81f85a313e694f639f32e98bf" end depends_on "fabric" depends_on "pyinvoke" depends_on "python@3.10" depends_on "pyyaml" depends_on "six" resource "certifi" do url "https://files.pythonhosted.org/packages/6c/ae/d26450834f0acc9e3d1f74508da6df1551ceab6c2ce0766a593362d6d57f/certifi-2021.10.8.tar.gz" sha256 "78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872" end resource "charset-normalizer" do url "https://files.pythonhosted.org/packages/56/31/7bcaf657fafb3c6db8c787a865434290b726653c912085fbd371e9b92e1c/charset-normalizer-2.0.12.tar.gz" sha256 "2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597" end resource "click" do url "https://files.pythonhosted.org/packages/42/e1/4cb2d3a2416bcd871ac93f12b5616f7755a6800bccae05e5a99d3673eb69/click-8.1.2.tar.gz" sha256 "479707fe14d9ec9a0757618b7a100a0ae4c4e236fac5b7f80ca68028141a1a72" end resource "filelock" do url "https://files.pythonhosted.org/packages/4d/cd/3b1244a19d61c4cf5bd65966eef97e6bc41e51fe84110916f26554d6ac8c/filelock-3.6.0.tar.gz" sha256 "9cd540a9352e432c7246a48fe4e8712b10acb1df2ad1f30e8c070b82ae1fed85" end resource "idna" do url "https://files.pythonhosted.org/packages/62/08/e3fc7c8161090f742f504f40b1bccbfc544d4a4e09eb774bf40aafce5436/idna-3.3.tar.gz" sha256 "9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d" end resource "Jinja2" do url "https://files.pythonhosted.org/packages/89/e3/b36266381ae7a1310a653bb85f4f3658c462a69634fa9b2fef76252a50ed/Jinja2-3.1.1.tar.gz" sha256 "640bed4bb501cbd17194b3cace1dc2126f5b619cf068a726b98192a0fde74ae9" end resource "jsonpickle" do url "https://files.pythonhosted.org/packages/35/0e/fe3ce0869add0213a1b45eef746cafb79ca45255a60ec918630c159e3490/jsonpickle-2.1.0.tar.gz" sha256 "84684cfc5338a534173c8dd69809e40f2865d0be1f8a2b7af8465e5b968dcfa9" end resource "MarkupSafe" do url "https://files.pythonhosted.org/packages/1d/97/2288fe498044284f39ab8950703e88abbac2abbdf65524d576157af70556/MarkupSafe-2.1.1.tar.gz" sha256 "7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b" end resource "packaging" do url "https://files.pythonhosted.org/packages/df/9e/d1a7217f69310c1db8fdf8ab396229f55a699ce34a203691794c5d1cad0c/packaging-21.3.tar.gz" sha256 "dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb" end resource "pyparsing" do url "https://files.pythonhosted.org/packages/d6/60/9bed18f43275b34198eb9720d4c1238c68b3755620d20df0afd89424d32b/pyparsing-3.0.7.tar.gz" sha256 "18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea" end resource "python-digitalocean" do url "https://files.pythonhosted.org/packages/f8/f7/43cb73fb393c4c0da36294b6040c7424bc904042d55c1b37c73ecc9e7714/python-digitalocean-1.17.0.tar.gz" sha256 "107854fde1aafa21774e8053cf253b04173613c94531f75d5a039ad770562b24" end resource "requests" do url "https://files.pythonhosted.org/packages/60/f3/26ff3767f099b73e0efa138a9998da67890793bfa475d8278f84a30fec77/requests-2.27.1.tar.gz" sha256 "68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61" end resource "requests-file" do url "https://files.pythonhosted.org/packages/50/5c/d32aeed5c91e7970ee6ab8316c08d911c1d6044929408f6bbbcc763f8019/requests-file-1.5.1.tar.gz" sha256 "07d74208d3389d01c38ab89ef403af0cfec63957d53a0081d8eca738d0247d8e" end resource "tldextract" do url "https://files.pythonhosted.org/packages/c0/ef/61c7d422df129f340d25127d1f8744c6ae1eda2f3aed978fdc7abad03d02/tldextract-3.2.0.tar.gz" sha256 "3d4b6a2105600b7d0290ea237bf30b6b0dc763e50fcbe40e849a019bd6dbcbff" end resource "urllib3" do url "https://files.pythonhosted.org/packages/1b/a5/4eab74853625505725cefdf168f48661b2cd04e7843ab836f3f63abf81da/urllib3-1.26.9.tar.gz" sha256 "aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e" end def install python3 = "python3.10" venv = virtualenv_create(libexec, python3) venv.pip_install resources site_packages = Language::Python.site_packages(python3) %w[fabric pyinvoke].each do |package_name| package = Formula[package_name].opt_libexec (libexec/site_packages/"homebrew-#{package_name}.pth").write package/site_packages end venv.pip_install_and_link buildpath end test do xy = Language::Python.major_minor_version "#{libexec}/bin/python" unittest = "#{libexec}/bin/python -m unittest discover " \ "#{libexec}/lib/python#{xy}/site-packages/sail/tests 2>&1" assert_match(version.to_s, shell_output("#{bin}/sail --version")) assert_match("Could not parse .sail/config.json", shell_output("#{bin}/sail deploy 2>&1", 1)) assert_match("OK", shell_output(unittest)) end end