hackmac 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|