-
-
Notifications
You must be signed in to change notification settings - Fork 10.7k
/
openzfs.rb
117 lines (107 loc) · 3.65 KB
/
openzfs.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
cask "openzfs" do
on_arm do
on_monterey :or_older do
arch arm: "Monterey-12-arm64"
version "2.2.2,504"
sha256 "87f333bb7a4eb487441763ec838b59c3e814b4bef13350821580d265f075baf0"
end
on_ventura do
arch arm: "Ventura-13-arm64"
version "2.2.2,506"
sha256 "182d78548d051adf22d880f192330f560421be32ae6314cc0ccc462cbf373c27"
end
on_sonoma :or_newer do
arch arm: "Sonoma-14-arm64"
version "2.2.2,507"
sha256 "feecdfdb5aa30dcb64044355e01ceddc6016f2568b776ccb84276fab3d65c730"
end
end
on_intel do
on_el_capitan :or_older do
arch intel: "EL.CAPITAN-10.11"
version "2.2.2,514"
sha256 "c85016155bf58da40ca87c3a7e7ac64f08d8a7446f2a06dd643a9c548c5bed56"
end
on_sierra do
arch intel: "Sierra-10.12"
version "2.2.2,515"
sha256 "651ea2ba99f59cc38bde6139d50daa89a98ea5f797785926ea20ecb409246434"
end
on_high_sierra do
arch intel: "High.Sierra-10.13"
version "2.2.2,516"
sha256 "020a1b0a1e2a8707ffca9a8671bb835ee1ecb9f03432dd8b67884250892d6dc0"
end
on_mojave do
arch intel: "Mojave-10.14"
version "2.2.2,518"
sha256 "51f6276a37e00a5db0f81ad11e17d31115861ce088b576ad1f095762263c6573"
end
on_catalina do
arch intel: "Catalina-10.15"
version "2.2.2,511"
sha256 "4f7bfb1f8dcc0c63386007fa3473642a561e1257a8e92e3c4c09232f87cbc15f"
end
on_big_sur do
arch intel: "Big.Sur-11"
version "2.2.2,517"
sha256 "2cbe932cea62249ebeecf5c810984c3017a5fc0eb65d1ea734595d27355e21af"
end
on_monterey do
arch intel: "Monterey-12"
version "2.2.2,505"
sha256 "cd335755ea327a11d642af3bfa355aeaebc5d4b2b991f40486bb08ed27af2521"
end
on_ventura do
arch intel: "Ventura-13"
version "2.2.2,508"
sha256 "d19fc25aee8b5f5300770fe56ba2928ecb7e196f79c7081386dca3f5f11fdbce"
end
on_sonoma :or_newer do
arch intel: "Sonoma-14"
version "2.2.2,509"
sha256 "7200c6e55f0c53a24f979b5b5fbb76aacb43f63b79f878fa6882e39872c5f555"
end
end
url "https://openzfsonosx.org/forum/download/file.php?id=#{version.csv.second}"
name "OpenZFS on OS X"
desc "ZFS driver and utilities"
homepage "https://openzfsonosx.org/"
livecheck do
url "https://openzfsonosx.org/forum/viewforum.php?f=20"
regex(/viewtopic[^"' >]*t=(\d+).*zfs[._-]macOS[._-]v?(\d+(?:(?:\.)\d+)+)(?:\s*release)/i)
strategy :page_match do |page, regex|
# Find the first [stable] release topic on the News forum
post_id, version = page.scan(regex).first
next if post_id.blank? || version.blank?
# Fetch the release topic page
release_page = Homebrew::Livecheck::Strategy.page_content(
"https://openzfsonosx.org/forum/viewtopic.php?f=20&t=#{post_id}",
)
next if release_page[:content].blank?
# Find the `id` of the file for the current `arch`
download_id_regex = /href=.*file.php\?id=(\d+).+OpenZFSonOsX[._-]v?#{version}[._-]#{arch}\.pkg/i
download_id = release_page[:content][download_id_regex, 1]
next if download_id.blank?
"#{version},#{download_id}"
end
end
pkg "OpenZFSonOsX-#{version.csv.first}-#{arch}.pkg"
postflight do
set_ownership "/usr/local/zfs"
end
uninstall_preflight do
system "sudo", "/usr/local/zfs/bin/zpool", "export", "-af"
end
uninstall launchctl: [
"org.openzfsonosx.InvariantDisks",
"org.openzfsonosx.zconfigd",
"org.openzfsonosx.zed",
"org.openzfsonosx.zpool-import",
"org.openzfsonosx.zpool-import-all",
],
pkgutil: "org.openzfsonosx.zfs"
caveats do
kext
end
end