Skip to content

Commit 61c1468

Browse files
Refactor macOS defaults to YAML-based configuration with user overrides
Co-authored-by: paolomainardi <8747+paolomainardi@users.noreply.github.com>
1 parent 9ec02be commit 61c1468

File tree

5 files changed

+727
-194
lines changed

5 files changed

+727
-194
lines changed

README.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,18 +102,35 @@ Run specific parts of the configuration using Ansible tags:
102102

103103
**macOS System Defaults:**
104104

105-
The macOS defaults configuration is implemented as a unified sjust task. Both Ansible and direct usage execute the same implementation:
105+
The macOS defaults configuration is implemented as a YAML-driven sjust task. Both Ansible and direct usage execute the same implementation:
106106

107107
```bash
108108
# Direct usage (recommended for individual use)
109109
sjust macos-defaults # Apply all macOS developer defaults
110110
sjust macos-defaults-check # Preview current defaults status
111111
sjust macos-defaults-reset # Reset selected defaults (use with caution)
112+
sjust macos-defaults-init-overrides # Create user overrides configuration
112113

113114
# Via Ansible (calls sjust internally)
114115
ansible-playbook ansible/macos.yml --tags macos-defaults --ask-become-pass
115116
```
116117

118+
**User Customization:**
119+
120+
You can override any defaults by creating user-specific configuration:
121+
122+
```bash
123+
# Initialize user overrides directory and example file
124+
sjust macos-defaults-init-overrides
125+
126+
# Edit your custom settings
127+
nano ~/.local/spark/macos-defaults/overrides.yml
128+
```
129+
130+
The system automatically merges your overrides with the default configuration. Configuration is stored in:
131+
- **Default settings**: `config/macos/defaults.yml` (40+ developer-optimized defaults)
132+
- **User overrides**: `~/.local/spark/macos-defaults/overrides.yml` (your customizations)
133+
117134
**Skip macOS Defaults:**
118135
```bash
119136
ansible-playbook ansible/macos.yml --skip-tags macos-defaults --ask-become-pass

ansible/macos/macos/base.yml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -363,9 +363,7 @@
363363

364364
# Install to /usr/local/bin as the other binaries.
365365
- name: Install sjust executable
366-
tags:
367-
- sjust
368-
- macos-defaults
366+
tags: sjust
369367
block:
370368
- name: Copy sjust executable
371369
copy:
@@ -395,9 +393,8 @@
395393
- name: Apply macOS system defaults for developers
396394
shell: /usr/local/bin/sjust macos-defaults
397395
become: no
398-
tags:
399-
- sjust
400-
- macos-defaults
396+
tags: macos-defaults
397+
when: "'/usr/local/bin/sjust' is exists"
401398

402399
- name: Remove unwanted cask packages
403400
community.general.homebrew_cask:

0 commit comments

Comments
 (0)