Filesystem Path Mappings

equivalence-rules-filesystem is a specialized Content Repository defining directory mappings across differing Operating Systems and distributions. It allows developers and deployment scripts to map abstract folder "intents" (e.g. lib_dir, config_dir, cache_dir) to concrete, host-specific paths on target OS platforms.

Directory Structure Layout

Filesystem rules are organized by OS families, distributions, and versions:

rules/
├── linux/              <-- Operating System Family
│   └── ubuntu/         <-- Distribution/Flavor
│       └── 22.04/      <-- OS Version
├── windows/
└── mac/

Mapping Intent Concept

An intent is an abstract placeholder. Instead of hardcoding /usr/lib/x86_64-linux-gnu in your scripts or code, you map the intent lib_dir. The ≡quivalence ≡ngine resolves the abstract intent to the concrete path based on the host configuration rules.

Example rules/linux/ubuntu/lib_dir.sdl
intent "lib_dir" {
  linux/ubuntu/22.04: "/usr/lib/x86_64-linux-gnu"
  linux/ubuntu/20.04: "/usr/lib/x86_64-linux-gnu"
}

Usage CLI Command Example

Resolve a filesystem path intent for Ubuntu 22.04 using a ruleset cloned directly from git:

equivalence-engine --domain filesystem \
  --rules-repo https://github.com/dev-centr/equivalence-rules-filesystem \
  --to linux/ubuntu/22.04 lib_dir