class Vdirsyncer < Formula include Language::Python::Virtualenv desc "Synchronize calendars and contacts" homepage "https://github.com/pimutils/vdirsyncer" url "https://github.com/pimutils/vdirsyncer.git", :tag => "0.16.7", :revision => "dcf5f701b7b5c21a8f4e8c80243db3e0baff1313" head "https://github.com/pimutils/vdirsyncer.git" bottle do cellar :any_skip_relocation sha256 "37dd9ebb3b0a3c41efa99f6e39e37dfac0c0ba3f22555ab64d02546a69bf8d6a" => :catalina sha256 "2c40f6ad53b8a558ed7503b5fe2413ae86850ea74f6ab41b560c3019185719fc" => :mojave sha256 "89f7e1832a262681843b223527d96c5f6a587ded3b2884df9a87204c463f1911" => :high_sierra sha256 "57510d02d159de632f3fdb98d7de88aba5ea01d375b4f096d6d367c976e355bc" => :sierra sha256 "81eaa19b3cbc91007a0a5cfe9979cca1f207b2ac2a72b87aabca41ae019838f7" => :el_capitan end depends_on "python" def install venv = virtualenv_create(libexec, "python3") system libexec/"bin/pip", "install", "-v", "--no-binary", ":all:", "--ignore-installed", "requests-oauthlib", buildpath system libexec/"bin/pip", "uninstall", "-y", "vdirsyncer" venv.pip_install_and_link buildpath prefix.install "contrib/vdirsyncer.plist" inreplace prefix/"vdirsyncer.plist" do |s| s.gsub! "@@WORKINGDIRECTORY@@", bin s.gsub! "@@VDIRSYNCER@@", bin/name s.gsub! "@@SYNCINTERVALL@@", "60" end end def post_install inreplace prefix/"vdirsyncer.plist", "@@LOCALE@@", ENV["LC_ALL"] || ENV["LANG"] || "en_US.UTF-8" end test do ENV["LC_ALL"] = "en_US.UTF-8" (testpath/".config/vdirsyncer/config").write <<~EOS [general] status_path = "#{testpath}/.vdirsyncer/status/" [pair contacts] a = "contacts_a" b = "contacts_b" collections = ["from a"] [storage contacts_a] type = "filesystem" path = "~/.contacts/a/" fileext = ".vcf" [storage contacts_b] type = "filesystem" path = "~/.contacts/b/" fileext = ".vcf" EOS (testpath/".contacts/a/foo/092a1e3b55.vcf").write <<~EOS BEGIN:VCARD VERSION:3.0 EMAIL;TYPE=work:username@example.org FN:User Name Ö φ 風 ض UID:092a1e3b55 N:Name;User END:VCARD EOS (testpath/".contacts/b/foo/").mkpath system "#{bin}/vdirsyncer", "discover" system "#{bin}/vdirsyncer", "sync" assert_match /Ö φ 風 ض/, (testpath/".contacts/b/foo/092a1e3b55.vcf").read end end