Patching Configuration Files

Patching Configuration Files

This example demonstrates how to non-destructively patch configuration files using HermitGrab. It’s particularly useful for managing settings in tools like VS Code or Cargo without overwriting user-specific configurations.

Highlights

  • JSON Merge Patch: Merges settings into a JSON file, ideal for settings.json.
  • Conditional Logic: The patch is only applied when the user=vscode tag is present.
  • Non-Destructive: JsonMerge adds or updates keys without removing existing ones.
[[patch]]
type = "JsonMerge"
source = "vscode_settings.json"
target = "~/.vscode-server/data/Machine/settings.json"
requires = ["user=vscode"]

[[patch]]
source = "config.toml"
target = "~/.cargo/config.toml"
type = "JsonMerge"