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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d7acc13fd5dee07de07b479330881c9c630179f8dc785400c2effaea44c3190c
4
- data.tar.gz: 2bb42e69cd439b93d38e9abd06cfb4142e3e987b1f049135e13416b2f610d099
3
+ metadata.gz: e31666568c0306204cd0f47663bebb3f5356c21cfc2ae68502d1a71a1584b216
4
+ data.tar.gz: 73d5127bf3747e8f95a06c8b6213cedba403d279c76273bed2e7265b123c5e03
5
5
  SHA512:
6
- metadata.gz: cd15589d99e9f8c25ed2ab45f44a584e7e02786c1b0bdcaaec0dea2becc74a7cdfe3f26170af2e16b440842169c10dbd0c06864b16fb045d9c2e0a28fd1f3934
7
- data.tar.gz: a6a78acc6c898182d4614f6bab884de53d9a5540eadf84eae6bea708cdbc88dda3a3f72b41fea3cc0af458011a60ce93c75b8116c8c3d6c0c458216c1bdc3bc9
6
+ metadata.gz: d74298a7025caf5aff3bbd1d00e423865c6862ae0de724f6e1dd7d12dfac28b5771e86853601c58a9e659884dddb7f0fd2235cc5cfc563a1b524fd196125cfda
7
+ data.tar.gz: 74b5de0dadcd8e22ab554e1fa3040eef3a6c6039425c3377fa9f584d1a2d53be8cdb68231555f23f847b53b67300c9373386cbf20d06e47b8ef7c9c3fdbfeafd
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.0
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
- Dir.mktmpdir do |dir|
138
- cd dir do
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.0 ruby lib
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.0"
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"
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
@@ -8,5 +8,6 @@ require 'hackmac/plist'
8
8
  require 'hackmac/disks'
9
9
  require 'hackmac/kext'
10
10
  require 'hackmac/kext_source'
11
+ require 'hackmac/kext_upgrader'
11
12
  require 'hackmac/config'
12
13
  require 'hackmac/utils'
@@ -34,9 +34,11 @@ module Hackmac
34
34
  github: 'Sniki/OS-X-USB-Inject-All'
35
35
  VirtualSMC:
36
36
  github: 'acidanthera/VirtualSMC'
37
+ plugins:
38
+ - SMCProcessor
39
+ - SMCSuperIO
37
40
  WhateverGreen:
38
41
  github: 'acidanthera/WhateverGreen'
39
-
40
42
  end
41
43
 
42
44
  def self.load
@@ -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
@@ -5,7 +5,6 @@ end
5
5
  require 'tabulo'
6
6
  require 'fileutils'
7
7
  require 'tmpdir'
8
- require 'find'
9
8
 
10
9
  module Hackmac
11
10
  module Utils
@@ -1,6 +1,6 @@
1
1
  module Hackmac
2
2
  # Hackmac version
3
- VERSION = '0.4.0'
3
+ VERSION = '0.4.1'
4
4
  VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
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.0
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 00:00:00.000000000 Z
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