hackmac 1.8.1 → 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: 78743bc0248a6a151a52a899e2f1a01a43f48db155aef66d7f834cf4e5a88afa
4
- data.tar.gz: 1394dcc5acf3e6c53fc154779b094615e9cce889c8d8bd53ca9b875273e60618
3
+ metadata.gz: '09d1c9d86b5f82faf58a2b4b86aff4a2bf315e81f2f30b4cf967e6fb6dfd33ca'
4
+ data.tar.gz: e642ea32afa25bcec1026b4e1d1cfb1ce71309aab7d32d42b55ad31b78d836fd
5
5
  SHA512:
6
- metadata.gz: 1ed639cb44f25eaa58e64414da5b95b60a7b525ae83abb3da6232397499abbfa063ab4948d38d273c84be62a7bf44fddfd714a33957d083370b9834eb8d00f4f
7
- data.tar.gz: 23710fe1b7754a05c199a7f59079e52441e29c08332a9d331d77ceace8846c2bc66ae5fa55ba915d60927ce966632923f6c68b7bc0aacb3d1da2d7fca1afc2c7
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 ADDED
@@ -0,0 +1,509 @@
1
+ # Changes
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
16
+
17
+ - Added a new `usage` method to provide help information when invalid arguments
18
+ are encountered.
19
+ - Improved argument parsing for the USB device name parameter.
20
+
21
+ ## 2025-02-18 v1.8.1
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**
35
+ - Added error handling for version comparison in `Hackmac::Kext_upgrader` to
36
+ allow forcing updates for unconventional versions.
37
+
38
+ ## 2024-07-24 v1.8.0
39
+
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
44
+
45
+ ## 2023-11-21 v1.7.2
46
+
47
+ - Added the `--downloadassets` flag to the `sudo #{cim.inspect}` command in the
48
+ `usb` script, enabling asset download during installation.
49
+
50
+ ## 2023-11-19 v1.7.1
51
+
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.
60
+
61
+ ## 2023-10-09 v1.7.0
62
+
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.
70
+
71
+ ## 2023-09-04 v1.6.1
72
+
73
+ - Improved color selection algorithm by using fewer bits in the
74
+ `Hackmac::Graph` class.
75
+ - Added executable bit to the `bin/efi` script.
76
+
77
+ ## 2023-05-29 v1.6.0
78
+
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.
85
+
86
+ ## 2023-05-28 v1.5.1
87
+
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.
97
+
98
+ ## 2023-05-28 v1.5.0
99
+
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
108
+
109
+ ## 2023-05-28 v1.4.2
110
+
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
117
+
118
+ ## 2023-05-28 v1.4.1
119
+
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
124
+
125
+ ## 2023-05-28 v1.4.0
126
+
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).
140
+
141
+ ## 2023-05-27 v1.3.0
142
+
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.
155
+
156
+ ## 2023-05-15 v1.2.1
157
+
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.
165
+
166
+ ## 2023-04-23 v1.2.0
167
+
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**
176
+
177
+ ## 2023-02-18 v1.1.3
178
+
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.
183
+
184
+ ## 2022-10-06 v1.1.2
185
+
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`.
191
+
192
+ ## 2022-07-12 v1.1.1
193
+
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.
198
+
199
+ ## 2022-05-26 v1.1.0
200
+
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.
208
+
209
+ ## 2022-05-26 v1.0.5
210
+
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`.
214
+
215
+ ## 2022-05-26 v1.0.4
216
+
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.
221
+
222
+ ## 2022-05-26 v1.0.3
223
+
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.
230
+
231
+ ## 2022-05-26 v1.0.2
232
+
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`.
236
+
237
+ ## 2022-05-26 v1.0.1
238
+
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'`
252
+
253
+ ## 2022-05-26 v1.0.0
254
+
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**
272
+
273
+ ## 2021-03-05 v0.8.3
274
+
275
+ - Updated the `BrcmPatchRAM` configuration to use Acidanthera's release instead
276
+ of RehabMan's.
277
+
278
+ ## 2020-12-13 v0.8.2
279
+
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`.
285
+
286
+ ## 2020-08-22 v0.8.1
287
+
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.
291
+
292
+ ## 2020-08-17 v0.8.0
293
+
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.
300
+
301
+ ## 2020-08-14 v0.7.0
302
+
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
309
+ addition to `.zip`.
310
+ - Created a new `KextDownload` class to handle downloading kexts from specified
311
+ URLs.
312
+
313
+ ## 2020-05-15 v0.6.2
314
+
315
+ - Added `--cached` option to the `git_args` method in the `efi` script,
316
+ enhancing diff functionality.
317
+
318
+ ## 2020-05-13 v0.6.1
319
+
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.
328
+
329
+ ## 2020-05-05 v0.6.0
330
+
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.
339
+
340
+ ## 2020-03-05 v0.5.0
341
+
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
351
+
352
+ ## 2020-02-13 v0.4.2
353
+
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`.
358
+
359
+ ## 2020-02-13 v0.4.1
360
+
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.
371
+
372
+ ## 2020-02-11 v0.4.0
373
+
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.
380
+
381
+ ## 2020-02-07 v0.3.4
382
+
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**.
386
+
387
+ ## 2020-02-07 v0.3.3
388
+
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.
394
+
395
+ ## 2020-01-30 v0.3.2
396
+
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".
400
+
401
+ ## 2020-01-30 v0.3.1
402
+
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`.
412
+
413
+ ## 2020-01-30 v0.3.0
414
+
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.
428
+
429
+ ## 2020-01-29 v0.2.1
430
+
431
+ - Removed the `DiskUUID` column from the table display in the `list` command to
432
+ reduce table width.
433
+
434
+ ## 2020-01-29 v0.2.0
435
+
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
445
+
446
+ ## 2020-01-28 v0.1.1
447
+
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
455
+
456
+ ## 2020-01-28 v0.1.0
457
+
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.
468
+
469
+ ## 2020-01-15 v0.0.4
470
+
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.
478
+
479
+ ## 2020-01-13 v0.0.3
480
+
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
485
+
486
+ ## 2020-01-13 v0.0.2
487
+
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.
494
+
495
+ ## 2020-01-06 v0.0.1
496
+
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.
506
+
507
+ ## 2019-12-18 v0.0.0
508
+
509
+ * Start
data/README.md CHANGED
@@ -1,59 +1,105 @@
1
- # HackMac
1
+ # HackMac 🚀
2
2
 
3
- ## Description
4
-
5
- Some ruby tools for working with a Hackintosh, which also might be (partially)
6
- useful an a regular Mac.
3
+ ## Description 📝
7
4
 
8
5
  HackMac is a set of Ruby tools specifically designed for managing and
9
6
  customizing Hackintosh configurations. While primarily intended for users with
10
7
  Hackintosh setups, it may also be useful for ordinary Mac users who want to
11
8
  leverage its features for monitoring system performance using `gfxmon`.
12
9
 
13
- ## Tools
10
+ ## Tools 🛠️
14
11
 
15
- - `efi` is a tool to work with OpenCore EFI partitions, that is upgrading
16
- OpenCore and Kexts and commiting to its git repository.
17
- - `usb` can be used to create a bootable USB containing a MacOs release and
18
- uses an EFI partition cloned from a git repository.
19
- - `gfxmon` dispays performance statistics for your AMD GPU in the terminal,
20
- that is temperature, clock rate, fan rotations, memory and power usage as
21
- provided by MacOS, see the screenshot:
22
- ![gfxmon Screenshot](./img/gfxmon.png "gfxmon Screenshot")
12
+ ### `efi` - EFI Partition Management 📁
13
+ Manage OpenCore EFI partitions including:
14
+ - Upgrading OpenCore and kernel extensions (kexts) 🔧
15
+ - Committing changes to git repositories 💾
16
+ - Mounting/unmounting EFI volumes 📌
17
+ - Cloning EFI partitions between devices 🔄
23
18
 
24
- ## Installation
19
+ ### `usb` - Bootable USB Creator 🖥️
20
+ Create bootable USB drives for macOS installation with:
21
+ - Format USB device with GPT partition scheme 📊
22
+ - Create bootable installer using Apple's `createinstallmedia` ⚡
23
+ - Initialize git repository on EFI partition 📦
25
24
 
26
- You can use rubygems to fetch the gem and install it for you:
25
+ ### `gfxmon` - GPU Performance Monitor 🎮
26
+ Display real-time performance statistics for your GPU in the terminal including:
27
+ - Temperature, clock rates, fan rotations 🌡️
28
+ - Memory usage and power consumption ⚡
29
+ - Color-coded visualizations with ANSI terminal graphics 🎨
27
30
 
28
- # gem install hackmac
31
+ ![gfxmon Screenshot](./img/gfxmon.png "gfxmon Screenshot")
29
32
 
30
- You can also put this line into your Gemfile
33
+ ## Installation 📦
31
34
 
32
- gem 'hackmac'
35
+ ### Using RubyGems 💎
36
+ ```bash
37
+ gem install hackmac
38
+ ```
33
39
 
34
- # Configuration
40
+ ### Using Bundler 📦
41
+ Add to your Gemfile:
42
+ ```ruby
43
+ gem 'hackmac'
44
+ ```
35
45
 
36
- First start `efi` without arguments this will display the available commands,
37
- but also initializes a default configuration file in
38
- `~/.config/hackmac/hackmac.yml` to get you started. If you want work with
39
- multiple configuration files you can change the path by setting
46
+ ## Configuration ⚙️
40
47
 
48
+ First run `efi` without arguments to display available commands and initialize
49
+ the default configuration file at:
50
+ ```
51
+ ~/.config/hackmac/hackmac.yml
41
52
  ```
42
- $ export HACKMAC_CONFIG=~/config/hackmac/other.yml
53
+
54
+ To use a custom configuration file, set the environment variable:
55
+ ```bash
56
+ export HACKMAC_CONFIG=~/config/hackmac/other.yml
43
57
  ```
44
58
 
45
- in your shell.
59
+ ## Usage Examples 🎯
60
+
61
+ ### EFI Management 📁
62
+ ```bash
63
+ # Mount EFI partition
64
+ efi mount
65
+
66
+ # Clone EFI partitions
67
+ efi clone /dev/disk0s1 /dev/disk1s1
68
+
69
+ # Upgrade OpenCore
70
+ efi oc_upgrade
46
71
 
47
- ## Download
72
+ # Show kext versions
73
+ efi kexts
74
+ ```
75
+
76
+ ### GPU Monitoring 🎮
77
+ ```bash
78
+ # Real-time monitoring with 2-second updates
79
+ gfxmon -n 2
80
+
81
+ # Monitor specific metric
82
+ gfxmon -m "Temperature(C)"
83
+
84
+ # Output as JSON for scripting
85
+ gfxmon -j
86
+ ```
87
+
88
+ ### USB Creation 🖥️
89
+ ```bash
90
+ # Create bootable USB
91
+ usb /dev/disk2
92
+ ```
48
93
 
49
- The homepage of this library is located at
94
+ ## Download 🌐
50
95
 
51
- * https://github.com/flori/hackmac
96
+ The homepage of this library is located at:
97
+ https://github.com/flori/hackmac
52
98
 
53
- ## Author
99
+ ## Author 👨‍💻
54
100
 
55
101
  [Florian Frank](mailto:flori@ping.de)
56
102
 
57
- ## License
103
+ ## License 📄
58
104
 
59
- This software is licensed under the MIT license.
105
+ This software is licensed under the [MIT license](LICENSE).
data/Rakefile CHANGED
@@ -14,6 +14,8 @@ GemHadar do
14
14
  test_dir 'tests'
15
15
  ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock', '.rvmrc', '.AppleDouble',
16
16
  'tags', '.bundle', '.DS_Store', '.byebug_history'
17
+ package_ignore '.gitignore', '.contexts'
18
+
17
19
  readme 'README.md'
18
20
 
19
21
  dependency 'tins', '~>1.14'
@@ -25,4 +27,6 @@ GemHadar do
25
27
  dependency 'search_ui'
26
28
  dependency 'hashie'
27
29
  development_dependency 'debug'
30
+
31
+ licenses << 'MIT'
28
32
  end