hackmac 1.8.2 → 1.8.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 18a5fe88490765785afa3cc3c630a6079013bca970de7648b63bc4fdbb32cf15
4
- data.tar.gz: baec77ae97e393c178fefd4cc37e4e4e74f746c8a2d771102a03340f14a94dd6
3
+ metadata.gz: '09d1c9d86b5f82faf58a2b4b86aff4a2bf315e81f2f30b4cf967e6fb6dfd33ca'
4
+ data.tar.gz: e642ea32afa25bcec1026b4e1d1cfb1ce71309aab7d32d42b55ad31b78d836fd
5
5
  SHA512:
6
- metadata.gz: af021e5b3e18cb145cfa99b4d73c6d9374fa3a8984d97eddce748dfbd5a2f2e1f8fcd4031fba535ad09cd1e1abf52a0d28cb62e9a44bf638844429bc88fb1f7b
7
- data.tar.gz: d4c226893bf24ad022e8b8496c5143d424c39f57993b0596dce721eb9b6eb0bcef86210afedaf198fb68fae4522dcd31953fe1b3becdab3f74f88ccc383504bd
6
+ metadata.gz: ce6b64440555a2236fa91cf059cfe8413bb6aa2361b453f694d6791fcd76a95ef397b3bd401bf9747936c3d85d46deb58e5eaed76e89600ffa9f7fe691764178
7
+ data.tar.gz: '092da979e7b49732c26ba139f36d58df9c11f22790bea9ff6bfa7289025562b751c5a77651632966aed4ab6cbbfacc441a1d8a97490fc43cdde6f4501c774b31'
@@ -0,0 +1,15 @@
1
+ context do
2
+ namespace "bin" do
3
+ Dir['bin/*'].each do |filename|
4
+ file filename, tags: 'bin'
5
+ end
6
+ end
7
+
8
+ namespace "lib" do
9
+ Dir['lib/**/*.rb'].each do |filename|
10
+ file filename, tags: 'lib'
11
+ end
12
+ end
13
+
14
+ file 'README.md', tags: [ 'documentation' ]
15
+ end
data/CHANGES.md CHANGED
@@ -1,6 +1,18 @@
1
1
  # Changes
2
2
 
3
- ## 2025-02-18 v1.8.2
3
+ ## 2025-09-19 v1.8.3
4
+
5
+ - Enhanced README with improved formatting and detailed tool descriptions
6
+ - Added better error handling in `kexts` command with `Errno::ENOENT` rescue
7
+ - Updated `gem_hadar` development dependency from version **1.20** to **2.6**
8
+ - Included `s.licenses = ["MIT".freeze]` in `hackmac.gemspec` and added `MIT`
9
+ license to gem specification
10
+ - Added `.gitignore` and `.contexts` to `package_ignore` list in `Rakefile`
11
+ - Updated print call syntax to use explicit parentheses
12
+ - Added `.context/code_comment.rb` to `hackmac.gemspec` and configured it for
13
+ code comment context
14
+
15
+ ## 2025-07-21 v1.8.2
4
16
 
5
17
  - Added a new `usage` method to provide help information when invalid arguments
6
18
  are encountered.
@@ -8,262 +20,489 @@
8
20
 
9
21
  ## 2025-02-18 v1.8.1
10
22
 
23
+ - Updated `Hackmac::Kext_upgrader` to handle version comparison errors by
24
+ adding error handling for unconventional versions.
25
+ - Improved the `git pull` command in the `usb` script to use the source branch
26
+ and set upstream correctly.
27
+ - Unfroze empty strings in `Hackmac::Graph::Display` to allow modifications if
28
+ necessary.
29
+ - Updated the README.md file to reflect the new HackMac project description and
30
+ correct the gem URL.
31
+ - Updated the `hackmac.gemspec` file with newer RubyGems versions, including:
32
+ - Updated `s.date` from **2024-12-24** to **2025-02-18**
33
+ - Updated `s.rubygems_version` from **3.6.1** to **3.6.2**
34
+ - Bumped the `gem_hadar` development dependency to ~> **1.19**
11
35
  - Added error handling for version comparison in `Hackmac::Kext_upgrader` to
12
- allow forcing for unconventional versions.
13
- - Improved `git pull` command in the USB bin script to use source branch and
14
- set upstream, and removed obsolete `git branch` command.
15
- - Updated README to reflect the new `HackMac` project as a Ruby toolset for
16
- managing and customizing Hackintosh configurations, and corrected the gem
17
- URL.
36
+ allow forcing updates for unconventional versions.
18
37
 
19
38
  ## 2024-07-24 v1.8.0
20
39
 
21
- - Upgraded the `term-ansicolor` dependency to version **1.7.0**.
22
- - Enhanced the `bin/gfxmon` script to support true coloring when available in
23
- the terminal.
24
- - Updated the `gem_hadar` dependency to version **2.3.4**.
40
+ - Upgraded the `term-ansicolor` dependency from version **1.3** to **1.10**
41
+ - Updated the `gem_hadar` development dependency to version **1.16.0**
42
+ - Modified the `bin/gfxmon` script to enable true coloring when supported by
43
+ the terminal
25
44
 
26
45
  ## 2023-11-21 v1.7.2
27
46
 
28
- - Added functionality to download `assets` as requested in the commit message.
47
+ - Added the `--downloadassets` flag to the `sudo #{cim.inspect}` command in the
48
+ `usb` script, enabling asset download during installation.
29
49
 
30
50
  ## 2023-11-19 v1.7.1
31
51
 
32
- - Improved compatibility with various `sudo` configurations to ensure
33
- consistent behavior across different environments.
52
+ - Removed the `infobar` gem dependency from the project.
53
+ - Updated the version number to **1.7.1** in multiple files including
54
+ `VERSION`, `hackmac.gemspec`, and `lib/hackmac/version.rb`.
55
+ - Modified the `x` method in `lib/hackmac/utils.rb` to remove reliance on
56
+ `infobar` for displaying progress and status messages, instead using direct
57
+ `puts` calls.
58
+ - Updated the `usb` script in `bin/usb` to simplify command execution by
59
+ removing the `busy` parameter from the `x` method calls.
34
60
 
35
61
  ## 2023-10-09 v1.7.0
36
62
 
37
- - Added a **busy** infobar that displays during calls to shell commands.
63
+ - Added the `infobar` gem with version constraint `>=0.7.1` to display a busy
64
+ indicator during shell command execution.
65
+ - Modified the `x` method in `lib/hackmac/utils.rb` to accept an optional
66
+ `busy` parameter, enabling the display of a progress indicator for
67
+ long-running commands.
68
+ - Updated the version number from **1.6.1** to **1.7.0** across all relevant
69
+ files.
38
70
 
39
71
  ## 2023-09-04 v1.6.1
40
72
 
41
- - Improved color selection algorithm to use fewer bits.
42
- - Added support for `x-bit` functionality.
73
+ - Improved color selection algorithm by using fewer bits in the
74
+ `Hackmac::Graph` class.
75
+ - Added executable bit to the `bin/efi` script.
43
76
 
44
77
  ## 2023-05-29 v1.6.0
45
78
 
46
- - Improved the algorithm for deriving colors from title bits by mixing them
47
- more effectively.
48
- - Added color display when listing metrics using the `-l` option.
49
- - Added comprehensive documentation and included a license file.
79
+ - Added a new method `derive_color_from_string(string)` in the `Hackmac::Graph`
80
+ class to generate colors based on string input.
81
+ - Modified the `list(ps)` function to sort metrics by name and display them
82
+ with colored text using ANSI color codes.
83
+ - Updated the documentation and added a LICENSE file.
84
+ - Added a screenshot of the gfxmon tool to the project's img directory.
50
85
 
51
86
  ## 2023-05-28 v1.5.1
52
87
 
53
- - Improved performance statistics retrieval by using `plist` output, replacing
54
- the previous method of parsing the complex output of `ioreg`.
88
+ - **Added** `Hackmac::IOReg` class to handle fetching and parsing of IORegistry
89
+ data using `plist` output instead of parsing the raw output of `ioreg`.
90
+ - **Updated** `gfxmon` script to use `Hackmac::IOReg.new(key:
91
+ 'PerformanceStatistics').as_hash` for fetching performance statistics,
92
+ replacing the previous method that parsed `ioreg` output.
93
+ - **Added** dependency on `hashie` gem to support deep finding in hashes within
94
+ the `IOReg` class.
95
+ - **Updated** version number from **1.5.0** to **1.5.1** across all relevant
96
+ files.
55
97
 
56
98
  ## 2023-05-28 v1.5.0
57
99
 
58
- - Optimized performance by improving the efficiency of certain operations.
100
+ - Optimized performance by modifying the `Hackmac::Graph` class:
101
+ - Changed variable initialization from `i = 0` to `@counter = -1`
102
+ - Added `@start = Time.now` for timing purposes
103
+ - Modified sleep duration calculation in `sleep_now` method
104
+ - Improved display diff handling with additional debug logging when
105
+ `ENV['DEBUG_BYTESIZE']` is set
106
+ - Updated ANSI color application logic in `Hackmac::Graph::Display` class to
107
+ use string concatenation instead of nested blocks
59
108
 
60
109
  ## 2023-05-28 v1.4.2
61
110
 
62
- - Improved the naming of variables in the configuration file to enhance clarity
63
- and maintainability.
111
+ - Improved variable naming in the config file
112
+ - Updated version number to **1.4.2**
113
+ - Added color output for config loading messages using `Term::ANSIColor`
114
+ - Modified config path environment variable from `CONFIG_PATH` to
115
+ `HACKMAC_CONFIG`
116
+ - Added exit status handling for failed commands in utils
64
117
 
65
118
  ## 2023-05-28 v1.4.1
66
119
 
67
- - Improved the formatting and clarity of command outputs for better user
68
- experience.
120
+ - Improved command output formatting in the `x` method of `Hackmac::Utils`
121
+ - Added emoji indicators for command success (`✅`) and failure (`⚠️`)
122
+ - Changed command prompt color based on whether `sudo` is used
123
+ - Simplified verbose output handling
69
124
 
70
125
  ## 2023-05-28 v1.4.0
71
126
 
72
- - Improved performance of graph display to avoid flickering.
73
- - Extracted formatters into their own module.
127
+ - Improved performance of graph display to reduce flickering.
128
+ - Modified the `-g` option to `-m` in `gfxmon` for specifying performance
129
+ metrics.
130
+ - Added a new method `choose_metric` that now uses `$opts[?m]` instead of
131
+ `$opts[?g]`.
132
+ - Introduced a new module `Hackmac::Graph::Formatters` to handle different
133
+ value formatting (e.g., bytes, hertz, celsius, percent).
134
+ - Refactored the graph implementation to use a new `Hackmac::Graph::Display`
135
+ class for better management of terminal output.
136
+ - Added support for mutex synchronization in graph updates to prevent display
137
+ issues during resizing or concurrent operations.
138
+ - Enhanced error handling and argument validation (e.g., ensuring sleep
139
+ duration is non-negative).
74
140
 
75
141
  ## 2023-05-27 v1.3.0
76
142
 
77
- - **Refactored** the `graph` functionality into a proper `Graph` class,
78
- enhancing code structure and maintainability.
143
+ - Refactored the graph implementation from a hack to a proper `Hackmac::Graph`
144
+ class.
145
+ - Added new methods and functionality:
146
+ - `derive_formatter` method for determining value formatting based on metric
147
+ type.
148
+ - Various formatting methods: `as_bytes`, `as_hertz`, `as_celsius`,
149
+ `as_percent`, and `as_default`.
150
+ - Improved graph rendering with better color handling, data processing, and
151
+ window resizing support.
152
+ - Updated the gemspec to include the new `graph.rb` file.
153
+ - Removed the old `format_bytes` method in favor of the new class-based
154
+ approach.
79
155
 
80
156
  ## 2023-05-15 v1.2.1
81
157
 
82
- - Added an additional check for `installer` existence to ensure proper
83
- validation before proceeding with installation.
84
- - Implemented a new mechanism to set the `upstream` source, enhancing
85
- dependency management and ensuring accurate package retrieval.
158
+ - Added an additional check for the existence of `createinstallmedia` at
159
+ `#{$config.usb.os}/Contents/Resources/createinstallmedia`.
160
+ - Updated version numbers to **1.2.1** in `VERSION`, `hackmac.gemspec`, and
161
+ `lib/hackmac/version.rb`.
162
+ - Modified the USB installation script to verify the presence of the macOS
163
+ installer before proceeding.
164
+ - Added a step to set the upstream branch for Git operations during EFI setup.
86
165
 
87
166
  ## 2023-04-23 v1.2.0
88
167
 
89
- - Added logic to set the `upstream` variable and check for the existence of an
90
- installer.
168
+ - Added a check to verify if the installer exists before proceeding with
169
+ installation. If the installer is not found, an error message is displayed.
170
+ - Modified the EFI setup process by adding `git branch
171
+ --set-upstream-to=origin/master` to set the upstream branch for the local Git
172
+ repository.
173
+
174
+ Version numbers updated:
175
+ - **1.2.0**
91
176
 
92
177
  ## 2023-02-18 v1.1.3
93
178
 
94
- - Extracted sample/default configuration into a separate file.
95
- - Simplified code by removing redundant logic related to "dreaded mounting".
179
+ - Extracted the sample/default configuration into a new file `hackmac.yml` to
180
+ improve maintainability and organization.
181
+ - Simplified the USB mounting process by dynamically determining mountpoints
182
+ based on configuration values, reducing manual checks for existing mounts.
96
183
 
97
184
  ## 2022-10-06 v1.1.2
98
185
 
99
- - Captured `stderr` for commands and included it as output
100
- - Replaced `byebug` with `debug`
101
- - Added `CONFIG_PATH` to help information
186
+ - Captured stderr for commands by modifying the `x` method in
187
+ `lib/hackmac/utils.rb` to include `2>&1`.
188
+ - Updated development dependency from `byebug` to `debug` in `Rakefile` and
189
+ `hackmac.gemspec`.
190
+ - Added help information about setting `CONFIG_PATH` in `bin/efi`.
102
191
 
103
192
  ## 2022-07-12 v1.1.1
104
193
 
105
- - Modified the `basename` method to extract the device name from a given path.
106
- - Converted the device path handling to use the `basename` method for
107
- consistency and clarity.
194
+ - Updated the version number to **1.1.1** in `VERSION`, `hackmac.gemspec`, and
195
+ `lib/hackmac/version.rb`.
196
+ - Modified the `usb` script to use `File.basename(dev)` when processing the
197
+ device argument.
108
198
 
109
199
  ## 2022-05-26 v1.1.0
110
200
 
111
- - Added a new validator for `config.plist` specifically designed to work with
112
- **OpenCore**.
201
+ - Added a new command `oc_validate` to the `efi` tool for validating OpenCore's
202
+ config.plist.
203
+ - Added a new class `OCValidator` in `lib/hackmac/oc_validator.rb` to handle
204
+ OpenCore validation logic.
205
+ - Updated the gem version from **1.0.5** to **1.1.0**.
206
+ - Updated the list of files and documentation in the gemspec to include the new
207
+ validator class.
113
208
 
114
209
  ## 2022-05-26 v1.0.5
115
210
 
116
- - Added the `root` path to the application.
211
+ - Added the root path `/` to the USB creation process.
212
+ - Updated version number from **1.0.4** to **1.0.5** in multiple files
213
+ including `VERSION`, `hackmac.gemspec`, and `lib/hackmac/version.rb`.
117
214
 
118
215
  ## 2022-05-26 v1.0.4
119
216
 
120
- - Added support for Ruby `v2.5` and updated dependencies to their latest
121
- versions.
122
- - Fixed an issue where the `config/initializers/session_store.rb` file was not
123
- being properly recognized when using `bin/dev`.
124
- - Enhanced error handling by introducing a new method `handle_error` in the
125
- `ErrorHandler` class, which provides more detailed logging and user feedback.
126
- - Improved performance by optimizing the database query execution time for the
127
- `User.search` method.
128
- - Added a new feature to support multi-factor authentication (MFA) with the
129
- introduction of the `mfa_enabled?` method in the `User` model.
217
+ - Added `sudo chown $USER .` to change ownership of the EFI directory in the
218
+ `usb` script.
219
+ - Reordered commands in the `usb` script, moving the creation of the
220
+ installation media to before mounting the EFI partition.
130
221
 
131
222
  ## 2022-05-26 v1.0.3
132
223
 
133
- - Changed the execution order of commands in the `usb` configuration.
224
+ - Changed the order of commands in the `usb` script.
225
+ - Updated version numbers to **1.0.3** across various files including
226
+ `VERSION`, `hackmac.gemspec`, and `lib/hackmac/version.rb`.
227
+ - Removed redundant execution of the command `sudo
228
+ "#{$config.usb.os}/Contents/Resources/createinstallmedia" --volume
229
+ #{mountpoint.inspect} --nointeraction` in the `usb` script.
134
230
 
135
231
  ## 2022-05-26 v1.0.2
136
232
 
137
- - Converted the output of `#to_s` method to a string format.
233
+ - Updated the version number from **1.0.1** to **1.0.2** in multiple files.
234
+ - Modified the `File.secure_write` method call in `lib/hackmac/config.rb` to
235
+ use `path.to_s` instead of `path`.
138
236
 
139
237
  ## 2022-05-26 v1.0.1
140
238
 
141
- - Upgraded the `default` configuration to improve functionality and user
142
- experience.
239
+ - Upgraded the default configuration with several changes:
240
+ - Updated `efi.source` to `'storage.gate.ping.de:/git/EFI-hacmaxi.git'`
241
+ - Changed `usb.os` to `/Applications/Install macOS Monterey.app`
242
+ - Modified `oc.efi_path` to `'EFI'`
243
+ - Added new configuration under `oc.files` including:
244
+ - `'BOOT/BOOTx64.efi'`
245
+ - `'OC/OpenCore.efi'`
246
+ - `'OC/Drivers/OpenHfsPlus.efi'`
247
+ - `'OC/Drivers/OpenRuntime.efi'`
248
+ - `'OC/Tools/OpenShell.efi'`
249
+ - Updated `kext.efi_path` to `'EFI/OC/Kexts'`
250
+ - Added new kext source for `LucyRTL8125Ethernet` with github repository
251
+ `'Mieze/LucyRTL8125Ethernet'`
143
252
 
144
253
  ## 2022-05-26 v1.0.0
145
254
 
146
- - Moved from Clover to OpenCore as the boot loader.
147
- - Removed support for specifying a boot device.
148
- - Added support for multiple configuration paths via the environment variable
149
- `CONFIG_PATH`.
255
+ - Added support for OpenCore with new commands `oc`, `oc_remote`, and
256
+ `oc_upgrade`
257
+ - Commands added to `bin/efi` script
258
+ - New classes `Hackmac::OC` and `Hackmac::OCUpgrader` implemented
259
+ - Removed Clover-related functionality
260
+ - Version bumped from **0.8.3** to **1.0.0**
261
+ - Refactored asset download logic with new module `Hackmac::AssetTools`
262
+ - Moved decompression logic to shared module
263
+ - Renamed classes for clarity:
264
+ - `KextSource` → `GithubSource`
265
+ - `KextDownload` → `URLDownload`
266
+ - Removed support for boot device management
267
+ - Removed `list` command from `bin/efi`
268
+ - Removed `boot_dev` method and related functionality
269
+ - Updated dependencies in `hackmac.gemspec`
270
+ - Updated `gem_hadar` dependency to **~> 1.12.0**
271
+ - Updated RubyGems version to **3.3.13**
150
272
 
151
273
  ## 2021-03-05 v0.8.3
152
274
 
153
- - Updated dependency to use `acidanthera` release of `BrcmPatchRAM` instead of
154
- `RehabMan's` version.
275
+ - Updated the `BrcmPatchRAM` configuration to use Acidanthera's release instead
276
+ of RehabMan's.
155
277
 
156
278
  ## 2020-12-13 v0.8.2
157
279
 
158
- - Modified behavior to use an **expanded path** when operating on the **EFI
159
- partition**, enhancing compatibility and functionality in such environments.
280
+ - Added `require 'pathname'` to the list of required libraries in `hackmac.rb`.
281
+ - Updated version number from **0.8.1** to **0.8.2** across multiple files.
282
+ - Modified the `kext` and `kext_upgrade` commands in `efi` script to use
283
+ expanded paths by converting the input path using
284
+ `Pathname.new(path).expand_path.to_s`.
160
285
 
161
286
  ## 2020-08-22 v0.8.1
162
287
 
163
- - Modified handling of `bdmesg` output to accommodate recent changes in its
164
- format.
288
+ - Updated the regular expression in `boot_dev` method to handle both `\r` and
289
+ `\n` line endings.
290
+ - Bumped version from **0.8.0** to **0.8.1** across all relevant files.
165
291
 
166
292
  ## 2020-08-17 v0.8.0
167
293
 
168
- - Added `aliases` to the list of EFI partitions.
294
+ - Added support for aliases in the list of EFI partitions, allowing users to
295
+ map device names to their corresponding identifiers.
296
+ - Updated the configuration file with new default values and added
297
+ documentation for clarity.
298
+ - Modified the `efi` command to display alias information when listing EFI
299
+ partitions.
169
300
 
170
301
  ## 2020-08-14 v0.7.0
171
302
 
172
- - Added support for downloading **kexts** that are not yet released on GitHub.
173
- - Moved the configuration file from `~/config/hackmac.yml` to the more
174
- standardized location `~/.config/hackmac/hackmac.yml`.
175
- - Enhanced decompression capabilities by adding support for `.tar.gz` files in
303
+ - Moved configuration file from `~/config/hackmac.yml` to
304
+ `~/.config/hackmac/hackmac.yml`.
305
+ - Added support for downloading kexts that are not released.
306
+ - Updated the decompression functionality to handle both `.zip` and `.tar.gz`
307
+ files.
308
+ - Modified the `KextSource` class to allow decompressing of `.tar.gz` files in
176
309
  addition to `.zip`.
310
+ - Created a new `KextDownload` class to handle downloading kexts from specified
311
+ URLs.
177
312
 
178
313
  ## 2020-05-15 v0.6.2
179
314
 
180
- - Improved the caching mechanism for `diff` operations to enhance performance
181
- and reduce redundant computations.
315
+ - Added `--cached` option to the `git_args` method in the `efi` script,
316
+ enhancing diff functionality.
182
317
 
183
318
  ## 2020-05-13 v0.6.1
184
319
 
185
- - Added all files in the `EFI` directory.
320
+ - Added `git add -A` before committing in the `commit` command of the `efi`
321
+ script to ensure all changes are staged.
322
+ - Updated version numbers from **0.6.0** to **0.6.1** across multiple files
323
+ including `VERSION`, `hackmac.gemspec`, and `lib/hackmac/version.rb`.
324
+ - Reformatted code in several parts of the `efi` script for better readability,
325
+ such as splitting long lines into multiple lines and improving indentation.
326
+ - Modified the `diff` command in the `efi` script to include all changes by
327
+ using `git add -A` before generating the diff.
186
328
 
187
329
  ## 2020-05-05 v0.6.0
188
330
 
189
- - Added support for installing debug kexts.
190
- - Enhanced documentation by adding usage information.
331
+ - Added support for installing debug kexts by introducing a `force` parameter
332
+ in the `kext_upgrade` command.
333
+ - Updated the version number from **0.5.0** to **0.6.0** across all relevant
334
+ files.
335
+ - Modified the `KextSource` class to include a `suffix` parameter, allowing for
336
+ differentiation between debug and release builds.
337
+ - Enhanced the `efi` script with new commands: `diff` and `commit`, which
338
+ enable diffing changes and committing them using git on the EFI partition.
191
339
 
192
340
  ## 2020-03-05 v0.5.0
193
341
 
194
- - Added support for the `efi` Git repository.
342
+ - Added support for EFI Git repository operations
343
+ - Implemented `git_args` method to handle command line arguments
344
+ - Added new commands:
345
+ - `diff`: Runs `git diff` on mounted EFI volume with default args `--color
346
+ --stat`
347
+ - `commit`: Commits changes and pushes to remote with default arg `-v`
348
+ - Updated version number from **0.4.2** to **0.5.0**
349
+ - Added `Shellwords` require in utils module
350
+ - Updated copyright date to 2020-03-05
195
351
 
196
352
  ## 2020-02-13 v0.4.2
197
353
 
198
- - Fixed a crash that occurred when no plugins were available.
199
- - Replaced direct file operations with the `File` class for better abstraction
200
- and maintainability.
354
+ - **0.4.2**: Fixed a crash that could occur when no plugins were available by
355
+ modifying the condition in `Hackmac::KextUpgrader`.
356
+ - Improved code clarity by replacing `FileTest.directory?` with
357
+ `File.directory?` in `Hackmac::KextUpgrader`.
201
358
 
202
359
  ## 2020-02-13 v0.4.1
203
360
 
204
- - Upgraded plugins if they are defined in the configuration.
361
+ - Added support for upgrading plugins alongside kexts by introducing the
362
+ `Hackmac::KextUpgrader` class.
363
+ - Updated the `kext_upgrade` command to use the new `KextUpgrader` instead of
364
+ inline code, improving maintainability and readability.
365
+ - Modified the configuration file to include plugin definitions under each
366
+ kext's source configuration.
367
+ - Removed redundant code from the `bin/efi` script by extracting the upgrade
368
+ logic into a dedicated class.
369
+ - Added support for handling multiple kexts and their associated plugins during
370
+ the upgrade process.
205
371
 
206
372
  ## 2020-02-11 v0.4.0
207
373
 
208
- - Added dependency on the `search_ui` gem.
209
- - Implemented changes to ensure non-negativity of values.
374
+ - Added dependency to the `search_ui` gem.
375
+ - Removed local implementation of `Hackmac::SearchUI` in favor of using the
376
+ `search_ui` gem.
377
+ - Updated version number from **0.3.4** to **0.4.0**.
378
+ - Modified code to use `Search.new` instead of `SearchUI.new` when initializing
379
+ search functionality.
210
380
 
211
381
  ## 2020-02-07 v0.3.4
212
382
 
213
- - Added the `path` attribute to the `kexts` list, enhancing the visibility of
214
- kernel extension paths.
383
+ - Added a new column `:path` to the table display in the `kexts` command.
384
+ - Modified the `Kext` class to store and expose the `:path` attribute.
385
+ - Updated version numbers across files to **0.3.4**.
215
386
 
216
387
  ## 2020-02-07 v0.3.3
217
388
 
218
- - Improved handling of kernel extension (kext) archives that contain
219
- **subdirectories**.
389
+ - Added support for handling kext archives with subdirectories in the
390
+ `kext_upgrade` command.
391
+ - Added a new development dependency: `byebug`.
392
+ - Improved error handling when unzipping kext archives by adding a failure
393
+ check after the unzip operation.
220
394
 
221
395
  ## 2020-01-30 v0.3.2
222
396
 
223
- - Improved handling of case sensitivity for user inputs.
397
+ - Modified the regular expression in `Hackmac::KextSource#download_asset` to be
398
+ case-insensitive when matching asset names, allowing for different casing of
399
+ the word "RELEASE".
224
400
 
225
401
  ## 2020-01-30 v0.3.1
226
402
 
227
- - Fixed some inaccuracies in the documentation and code comments.
403
+ - Updated the version number to **0.3.1** in multiple files including
404
+ `VERSION`, `hackmac.gemspec`, and `lib/hackmac/version.rb`.
405
+ - Modified the kext upgrade process in `bin/efi`:
406
+ - Added a check for `name` before proceeding with file operations.
407
+ - Improved error handling by adding failure messages when the kext could not
408
+ be installed or downloaded.
409
+ - Changed the prompt message to include the target path and version.
410
+ - Updated the configuration file `lib/hackmac/config.rb`:
411
+ - Renamed the device key from `boot` to `main`.
228
412
 
229
413
  ## 2020-01-30 v0.3.0
230
414
 
231
- - Added support for the `usb` command, enabling interaction with USB devices.
415
+ - Added the `usb` command to create a bootable USB drive for Hackintosh
416
+ installations.
417
+ - Updated the gem specification and version files to reflect the new version
418
+ **0.3.0**.
419
+ - Modified the `hackmac.gemspec` file to include the new `usb` executable and
420
+ updated the list of files and extra documentation files.
421
+ - Added a new module `Hackmac::Utils` containing utility functions for command
422
+ execution and user interaction, consolidating code previously present in
423
+ individual scripts.
424
+ - Updated the default configuration in `lib/hackmac/config.rb` to include new
425
+ keys for EFI source and USB OS installation media paths.
426
+ - Removed redundant code from the `bin/efi` script by including the `Utils`
427
+ module instead of duplicating utility functions.
232
428
 
233
429
  ## 2020-01-29 v0.2.1
234
430
 
235
- - Skipped `UUID` to reduce table width.
431
+ - Removed the `DiskUUID` column from the table display in the `list` command to
432
+ reduce table width.
236
433
 
237
434
  ## 2020-01-29 v0.2.0
238
435
 
239
- - Added functionality to `automatically upgrade` kernel extensions (kexts)
240
- directly from GitHub.
436
+ - Added a new `kext_upgrade` command to upgrade kexts from their GitHub sources
437
+ - Updated the `clone` method to use an `ask` helper function for prompts
438
+ - Added support for downloading and installing kext upgrades in a temporary
439
+ directory
440
+ - Improved the `KextSource` class with:
441
+ - Better handling of GitHub authentication
442
+ - Added `download_asset` method to download release assets
443
+ - Enhanced version parsing logic
444
+ - Updated various dependencies and internal utilities
241
445
 
242
446
  ## 2020-01-28 v0.1.1
243
447
 
244
- - Updated to use the `new API` for enhanced functionality and compatibility.
448
+ - Updated the `hackmac` gem version from **0.1.0** to **0.1.1**
449
+ - Modified the `usage` method in `bin/efi` to use `boot_dev` instead of `dev`
450
+ - Changed the way disks are processed in `bin/efi`, using
451
+ `disks.AllDisksAndPartitions` instead of accessing via hash
452
+ - Updated methods in `lib/hackmac/kext.rb` to use new API calls like
453
+ `CFBundleIdentifier()`, `CFBundleName()`, and `CFBundleShortVersionString()`
454
+ instead of direct hash access
245
455
 
246
456
  ## 2020-01-28 v0.1.0
247
457
 
248
- - Improved the use of the `config` file for better configuration handling.
249
- - Enhanced the `output` generation to provide more informative results.
458
+ - Added support for a configuration file to store device mappings and kext
459
+ sources.
460
+ - Updated the `kexts` command to use the new configuration and display results
461
+ in a formatted table using `Tabulo`.
462
+ - Changed the `boot` command to `list` which now displays boot disk information
463
+ in a more structured format with tables.
464
+ - Added support for GitHub authentication when fetching remote kext versions.
465
+ - Improved error handling and version comparison logic for kexts.
466
+ - Added new dependencies: `complex_config` and `tabulo`.
467
+ - Updated the gemspec to include new files and updated version numbers.
250
468
 
251
469
  ## 2020-01-15 v0.0.4
252
470
 
253
- - Read files using the `UTF-8` encoding to ensure proper handling of text data.
471
+ - Added support for listing version info of kexts via the `kext` command, which
472
+ takes a `PATH` argument.
473
+ - Updated the `kexts` command to display the EFI device used in the output.
474
+ - Modified the `mount` and `unmount` commands with TODO notes for future
475
+ symlink management.
476
+ - Changed file reading in `lib/hackmac/kext.rb` to use UTF-8 encoding.
477
+ - Bumped version from **0.0.3** to **0.0.4** across all files.
254
478
 
255
479
  ## 2020-01-13 v0.0.3
256
480
 
257
- - Added functionality to display the `kext` version and list all available
258
- `kext`s.
481
+ - Added the ability to display the kext version and all kexts
482
+ - Updated the command from `kext` to `kexts`
483
+ - Modified the help message for the `kexts` command
484
+ - Added a new `kext` command that takes an app directory as input
259
485
 
260
486
  ## 2020-01-13 v0.0.2
261
487
 
262
- - Made the `device` configuration option configurable.
488
+ - Made the device configurable in the `efi` script by allowing it to accept a
489
+ custom mount point via command line arguments.
490
+ - Updated the version number from **0.0.1** to **0.0.2** across all relevant
491
+ files including `VERSION`, `hackmac.gemspec`, and `lib/hackmac/version.rb`.
492
+ - Modified the date in the gem specification file to reflect the latest commit
493
+ date of 2020-01-13.
263
494
 
264
495
  ## 2020-01-06 v0.0.1
265
496
 
266
- No significant changes to summarize.
497
+ - Added a `boot` command to the `efi` tool that shows boot disk information,
498
+ specifically which EFI partition was used.
499
+ - Updated the `help` command in the `efi` tool to include detailed usage
500
+ instructions for all available commands: `mount`, `unmount`, `clone`, `kext`,
501
+ and `boot`.
502
+ - Bumped the version number from **0.0.0** to **0.0.1** across all relevant
503
+ files.
504
+ - Updated the gemspec file to reflect the new version **0.0.1**, updated the
505
+ date, and adjusted RubyGems version compatibility.
267
506
 
268
507
  ## 2019-12-18 v0.0.0
269
508