···11{
22- organist = import "../../lib/organist.ncl",
22+ organist = import "/nix/store/fjxrgrx0s69m5vkss5ff1i5akjcx39ss-source/lib/organist.ncl",
33}
+4-4
CHANGELOG.md
···186186187187### Changed
188188- Bumped CLI version to **2.0.1** and updated the abstract to
189189- “Declaritively set associations for URLs and files.”
189189+ “Declaratively set associations for URLs and files.”
190190- Revised README examples and docs:
191191 - Renamed `infat list` → `infat info`
192192 - Changed flag `--file-type` → `--ext`
···224224- Refactored the `list` command to use two exclusive `@Option` parameters (`--app`, `--ext`) with XOR validation.
225225- Switched PList parsing to `DictionaryPList(url:)` and UTI lookup to `UTType(filenameExtension:)`.
226226- Replaced ad-hoc `print` calls with `logger.info` for consistent, leveled logging.
227227-- Renamed `deriveUTIFromExtension(extention:)` to `deriveUTIFromExtension(ext:)` for clarity and consistency.
227227+- Renamed `deriveUTIFromExtension(extension:)` to `deriveUTIFromExtension(ext:)` for clarity and consistency.
228228229229### Fixed
230230- Corrected typos in `FileSystemUtilities.deriveUTIFromExtension` signature and related debug messages.
···240240- Using function overloading to set default application based on Uttype or extension
241241242242### Deprecated
243243-- Removed --assocations option in list into the basic list command
243243+- Removed --associations option in list into the basic list command
244244- Filetype option, now ext.
245245246246### Added
···409409[0.5.0]: https://github.com/philocalyst/infat/compare/v0.4.0...v0.5.0
410410[0.4.0]: https://github.com/philocalyst/infat/compare/v0.3.0...v0.4.0
411411[0.3.0]: https://github.com/philocalyst/infat/compare/v0.2.0...v0.3.0
412412-[0.2.0]: https://github.com/philocalyst/infat/compare/63822faf94def58bf347f8be4983e62da90383bb...d32aec000bf040c48887f104decf4a9736aea78b (Comparing agaisnt the start of the project)
412412+[0.2.0]: https://github.com/philocalyst/infat/compare/63822faf94def58bf347f8be4983e62da90383bb...d32aec000bf040c48887f104decf4a9736aea78b (Comparing against the start of the project)
+2-2
README.md
···33[](https://swift.org)
44[](https://developer.apple.com/macOS)
5566-Infat is an ultra-powerful, macOS-native CLI tool for declaritively managing both file-type and URL-scheme associations. Avoid the hassle of navigating sub-menus to setup your default browser or image viewer, and the pain of doing that *every time* you get a new machine. Setup the rules once, and bask in your own ingenuity forevermore. Take back control, and bind your openers to whatever. You. Want. Override everything! Who's going to stop you?
66+Infat is an ultra-powerful, macOS-native CLI tool for declaratively managing both file-type and URL-scheme associations. Avoid the hassle of navigating sub-menus to setup your default browser or image viewer, and the pain of doing that *every time* you get a new machine. Setup the rules once, and bask in your own ingenuity forevermore. Take back control, and bind your openers to whatever. You. Want. Override everything! Who's going to stop you?
7788---
99···20202121## Tutorial
22222323-### 1. Getting assocation information
2323+### 1. Getting association information
24242525```shell
2626# Show the default app for .txt files and all registered apps
+1-1
infat-lib/src/macos/launch_services_db.rs
···117117 continue;
118118 }
119119120120- // Canonicalize the id (There's sometimes a difference between the id the application provides to launchservices and the one it'll key itself as to be identifed as)
120120+ // Canonicalize the id (There's sometimes a difference between the id the application provides to launchservices and the one it'll key itself as to be identified as)
121121 let canonical_id = match resolve_to_bundle_id(&bundle_id) {
122122 Ok(id) => id,
123123 Err(_) => {
+3-3
infat-lib/src/macos/workspace.rs
···115115 .and_then(|val| val.as_string())
116116 .unwrap_or("Unknown");
117117118118- let authoritive_id = dict
118118+ let authoritative_id = dict
119119 .get("CFBundleIdentifier")
120120 .expect("Required for any registered app")
121121 .as_string()
122122 .unwrap_or("Unknown");
123123124124- // Prioritize the pretty name but fallbak on the authoritive
125125- if app_name != authoritive_id {
124124+ // Prioritize the pretty name but fallbak on the authoritative
125125+ if app_name != authoritative_id {
126126 return Ok(app_name.to_string());
127127 }
128128