A meta package manager inspired by rebos
Mostly made for the same reasons as rebos, but with a different approach to determining the system's state: Meta has no generation tracking. Instead system state is determined using each managers 'list' command. This solves one of the main problems I've had when using rebos: the 'built' generation and the actual system getting out of sync. While this does increase the burden the individual managers have to bear, all of the ones I personally use already have a built-in way to get their items
- Managers
- User-defined
- Ordering
- System state always dynamically determined by managers
- Maybe user-defined additional options
- Configs
- Modular
- Different machines
- No generation tracking, should be handled by git
- Each manager is a file in the managers/ subdirectory
- The ordering of the managers is defined in
manager_order
- add: command for adding one or multiple items
- will be replaced by a single item, by all of them, separated by spaces
- remove: command for removing one or multiple items (same formatting as above)
- upgrade: command for upgrading all items (does not receive any items for meta)
- list: command for listing all installed items, separated by newlines
- used for determining the system state
- remove_then_add: first remove then add items
- items_separator: The separator to use when filling in the in format commands. Defaults to space
Can be found in meta-managers
- Each machine has a "root" config file, found at machines/{machine name}.toml
- Further config files are located in the configs/ subdirectory, and can be imported by file name using
imports = ["foo", "bar"]
- These config files can also import other config files
- Specifying items is done by using
{manager name} = ["foo", "bar"]
in any config file - All arrays can also be replaced by single-item strings
configs/
├── common.toml
└── rust.toml
machines/
├── laptop.toml
└── pc.toml
managers/
├── cargo.toml
├── files.toml
├── rustup_component.toml
├── rustup_toolchain.toml
├── service.toml
├── service_startup.toml
└── pacman.toml
files/
├── common/
├── laptop/
├── pc/
manager_order