hackmac 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/bin/efi +2 -42
- data/hackmac.gemspec +5 -5
- data/lib/hackmac.rb +1 -0
- data/lib/hackmac/config.rb +3 -1
- data/lib/hackmac/kext_upgrader.rb +68 -0
- data/lib/hackmac/utils.rb +0 -1
- data/lib/hackmac/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e31666568c0306204cd0f47663bebb3f5356c21cfc2ae68502d1a71a1584b216
|
|
4
|
+
data.tar.gz: 73d5127bf3747e8f95a06c8b6213cedba403d279c76273bed2e7265b123c5e03
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d74298a7025caf5aff3bbd1d00e423865c6862ae0de724f6e1dd7d12dfac28b5771e86853601c58a9e659884dddb7f0fd2235cc5cfc563a1b524fd196125cfda
|
|
7
|
+
data.tar.gz: 74b5de0dadcd8e22ab554e1fa3040eef3a6c6039425c3377fa9f584d1a2d53be8cdb68231555f23f847b53b67300c9373386cbf20d06e47b8ef7c9c3fdbfeafd
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.4.
|
|
1
|
+
0.4.1
|
data/bin/efi
CHANGED
|
@@ -134,48 +134,8 @@ when 'kext'
|
|
|
134
134
|
path = ARGV.shift or fail 'need kext dir'
|
|
135
135
|
puts Kext.new(path: path)
|
|
136
136
|
when 'kext_upgrade'
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
path = ARGV.shift or fail 'need kext dir'
|
|
140
|
-
kext = Kext.new(path: path, config: $config)
|
|
141
|
-
case
|
|
142
|
-
when kext.remote_version.nil?
|
|
143
|
-
puts "No source defined for #{kext}"
|
|
144
|
-
when kext.remote_version > kext.version
|
|
145
|
-
name, data = kext.remote_kext.download_asset
|
|
146
|
-
if name
|
|
147
|
-
File.secure_write(name, data)
|
|
148
|
-
system "unzip #{name.inspect}" or fail "Could not unzip #{name.inspect}"
|
|
149
|
-
kext_path = nil
|
|
150
|
-
Find.find(dir) do |path|
|
|
151
|
-
if FileTest.directory?(path)
|
|
152
|
-
case File.basename(path)
|
|
153
|
-
when /\A\./
|
|
154
|
-
Find.prune
|
|
155
|
-
when "#{kext.name}.kext"
|
|
156
|
-
kext_path = path
|
|
157
|
-
break
|
|
158
|
-
else
|
|
159
|
-
next
|
|
160
|
-
end
|
|
161
|
-
end
|
|
162
|
-
end
|
|
163
|
-
if kext_path
|
|
164
|
-
if ask("Really upgrade #{path.inspect} to version #{kext.remote_version}? (y/n) ")
|
|
165
|
-
rm_rf path
|
|
166
|
-
cp_r kext_path, path
|
|
167
|
-
end
|
|
168
|
-
else
|
|
169
|
-
fail "#{kext_path} Could not be installed"
|
|
170
|
-
end
|
|
171
|
-
else
|
|
172
|
-
fail "#{kext.remote_kext.name} could not be downloaded"
|
|
173
|
-
end
|
|
174
|
-
else
|
|
175
|
-
puts "#{kext} is already the latest version"
|
|
176
|
-
end
|
|
177
|
-
end
|
|
178
|
-
end
|
|
137
|
+
path = ARGV.shift or fail 'need kext dir'
|
|
138
|
+
Hackmac::KextUpgrader.new(path: path, config: $config).perform
|
|
179
139
|
when 'list'
|
|
180
140
|
disks = Disks.new
|
|
181
141
|
efis = []
|
data/hackmac.gemspec
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
|
-
# stub: hackmac 0.4.
|
|
2
|
+
# stub: hackmac 0.4.1 ruby lib
|
|
3
3
|
|
|
4
4
|
Gem::Specification.new do |s|
|
|
5
5
|
s.name = "hackmac".freeze
|
|
6
|
-
s.version = "0.4.
|
|
6
|
+
s.version = "0.4.1"
|
|
7
7
|
|
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
|
9
9
|
s.require_paths = ["lib".freeze]
|
|
10
10
|
s.authors = ["Florian Frank".freeze]
|
|
11
|
-
s.date = "2020-02-
|
|
11
|
+
s.date = "2020-02-12"
|
|
12
12
|
s.description = "This ruby gem provides some useful tools for working with a Hackintosh.".freeze
|
|
13
13
|
s.email = "flori@ping.de".freeze
|
|
14
14
|
s.executables = ["gfxmon".freeze, "usb".freeze, "efi".freeze]
|
|
15
|
-
s.extra_rdoc_files = ["README.md".freeze, "lib/hackmac.rb".freeze, "lib/hackmac/config.rb".freeze, "lib/hackmac/disks.rb".freeze, "lib/hackmac/kext.rb".freeze, "lib/hackmac/kext_source.rb".freeze, "lib/hackmac/plist.rb".freeze, "lib/hackmac/utils.rb".freeze, "lib/hackmac/version.rb".freeze]
|
|
16
|
-
s.files = [".gitignore".freeze, "Gemfile".freeze, "README.md".freeze, "Rakefile".freeze, "VERSION".freeze, "bin/efi".freeze, "bin/gfxmon".freeze, "bin/usb".freeze, "hackmac.gemspec".freeze, "lib/hackmac.rb".freeze, "lib/hackmac/config.rb".freeze, "lib/hackmac/disks.rb".freeze, "lib/hackmac/kext.rb".freeze, "lib/hackmac/kext_source.rb".freeze, "lib/hackmac/plist.rb".freeze, "lib/hackmac/utils.rb".freeze, "lib/hackmac/version.rb".freeze]
|
|
15
|
+
s.extra_rdoc_files = ["README.md".freeze, "lib/hackmac.rb".freeze, "lib/hackmac/config.rb".freeze, "lib/hackmac/disks.rb".freeze, "lib/hackmac/kext.rb".freeze, "lib/hackmac/kext_source.rb".freeze, "lib/hackmac/kext_upgrader.rb".freeze, "lib/hackmac/plist.rb".freeze, "lib/hackmac/utils.rb".freeze, "lib/hackmac/version.rb".freeze]
|
|
16
|
+
s.files = [".gitignore".freeze, "Gemfile".freeze, "README.md".freeze, "Rakefile".freeze, "VERSION".freeze, "bin/efi".freeze, "bin/gfxmon".freeze, "bin/usb".freeze, "hackmac.gemspec".freeze, "lib/hackmac.rb".freeze, "lib/hackmac/config.rb".freeze, "lib/hackmac/disks.rb".freeze, "lib/hackmac/kext.rb".freeze, "lib/hackmac/kext_source.rb".freeze, "lib/hackmac/kext_upgrader.rb".freeze, "lib/hackmac/plist.rb".freeze, "lib/hackmac/utils.rb".freeze, "lib/hackmac/version.rb".freeze]
|
|
17
17
|
s.homepage = "http://github.com/flori/hackmac".freeze
|
|
18
18
|
s.rdoc_options = ["--title".freeze, "Hackmac - Some useful tools for working with a Hackintosh".freeze, "--main".freeze, "README.md".freeze]
|
|
19
19
|
s.rubygems_version = "3.1.2".freeze
|
data/lib/hackmac.rb
CHANGED
data/lib/hackmac/config.rb
CHANGED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
require 'fileutils'
|
|
2
|
+
require 'find'
|
|
3
|
+
require 'pathname'
|
|
4
|
+
|
|
5
|
+
module Hackmac
|
|
6
|
+
class KextUpgrader
|
|
7
|
+
include FileUtils
|
|
8
|
+
|
|
9
|
+
def initialize(path:, config:)
|
|
10
|
+
@path, @config = path, config
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
private
|
|
14
|
+
|
|
15
|
+
def isolate
|
|
16
|
+
Dir.mktmpdir do |dir|
|
|
17
|
+
cd dir do
|
|
18
|
+
yield dir
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
public
|
|
24
|
+
|
|
25
|
+
def perform
|
|
26
|
+
isolate do |dir|
|
|
27
|
+
kext = Kext.new(path: @path, config: @config)
|
|
28
|
+
case
|
|
29
|
+
when kext.remote_version.nil?
|
|
30
|
+
puts "No source defined for #{kext}"
|
|
31
|
+
when kext.remote_version > kext.version
|
|
32
|
+
name, data = kext.remote_kext.download_asset
|
|
33
|
+
if name
|
|
34
|
+
File.secure_write(name, data)
|
|
35
|
+
system "unzip #{name.inspect}" or fail "Could not unzip #{name.inspect}"
|
|
36
|
+
kext_pathes = []
|
|
37
|
+
Find.find(dir) do |path|
|
|
38
|
+
if FileTest.directory?(path)
|
|
39
|
+
case File.basename(path)
|
|
40
|
+
when /\A\./
|
|
41
|
+
Find.prune
|
|
42
|
+
when "#{kext.name}.kext"
|
|
43
|
+
kext_pathes.unshift path
|
|
44
|
+
when
|
|
45
|
+
*@config.kext.sources[kext.name]&.plugins&.map { |p| p + '.kext' }
|
|
46
|
+
then
|
|
47
|
+
kext_pathes << path
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
p kext_pathes
|
|
52
|
+
kext_pathes.each do |kext_path|
|
|
53
|
+
old_path = (Pathname.new(@path).dirname + File.basename(kext_path)).to_s
|
|
54
|
+
if ask("Really upgrade #{old_path.inspect} to version #{kext.remote_version}? (y/n) ")
|
|
55
|
+
rm_rf old_path
|
|
56
|
+
cp_r kext_path, old_path
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
else
|
|
60
|
+
fail "#{kext.remote_kext.name} could not be downloaded"
|
|
61
|
+
end
|
|
62
|
+
else
|
|
63
|
+
puts "#{kext} is already the latest version"
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
data/lib/hackmac/utils.rb
CHANGED
data/lib/hackmac/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hackmac
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Florian Frank
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-02-
|
|
11
|
+
date: 2020-02-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: gem_hadar
|
|
@@ -150,6 +150,7 @@ extra_rdoc_files:
|
|
|
150
150
|
- lib/hackmac/disks.rb
|
|
151
151
|
- lib/hackmac/kext.rb
|
|
152
152
|
- lib/hackmac/kext_source.rb
|
|
153
|
+
- lib/hackmac/kext_upgrader.rb
|
|
153
154
|
- lib/hackmac/plist.rb
|
|
154
155
|
- lib/hackmac/utils.rb
|
|
155
156
|
- lib/hackmac/version.rb
|
|
@@ -168,6 +169,7 @@ files:
|
|
|
168
169
|
- lib/hackmac/disks.rb
|
|
169
170
|
- lib/hackmac/kext.rb
|
|
170
171
|
- lib/hackmac/kext_source.rb
|
|
172
|
+
- lib/hackmac/kext_upgrader.rb
|
|
171
173
|
- lib/hackmac/plist.rb
|
|
172
174
|
- lib/hackmac/utils.rb
|
|
173
175
|
- lib/hackmac/version.rb
|