homebrew-core/Formula/vdirsyncer.rb
2017-07-02 00:58:41 -07:00

72 lines
2.3 KiB
Ruby

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.0",
:revision => "87c7143fa400c25a9b0b73a17fb057cbbdb329fc"
head "https://github.com/pimutils/vdirsyncer.git"
bottle do
cellar :any_skip_relocation
sha256 "cf8fcd1bb0be37d9d0562f51611686980e6c8e4da34261112a66c5ff817c27ad" => :sierra
sha256 "b403566ffa9c327541e9372185e8d881595091e8fc8dac83cdd3212abc60a813" => :el_capitan
sha256 "012b08aa8b5c568127fa48cee4093de6c605599c6122f3692df75aa1207cfbef" => :yosemite
end
depends_on :python3
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.undent
[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.undent
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