hackmac 1.8.2 → 1.8.4

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