How suxyio/declmysys works
DeclMySys is a declarative Linux system-configuration manager. Users initialize a declaration directory, describe ordered configuration operations in TOML, then list or execute them; execution supports dry runs and command presets such as packages, git clone, and stow. The graph follows the sampled CLI and setup code, plus the subsystem boundaries documented by the tree and README. The internals of listing and execution were not sampled, so those links are limited to the documented entry points and visible package boundaries.
Main entry points: init.go Initialize directory · main.go CLI entry · decls Load declarations · list.go List declarations
Components 17
CLI workflows
- CLI entry
main.go - Initialize directory
internal/subcmds/init.go - List declarations
internal/subcmds/list.go - Run declarations
internal/subcmds/run.go
Configuration inputs
- Global config
internal/parse/globconf - Declaration files
internal/parse/decls - Metadata and substitutions
internal/parse/metadata - Starter templates
internal/templates
Declaration engine
- Load declarations
internal/parse/decls - Filter and format
internal/parse/decls - Priority execution
internal/parse/decls - Operation presets
internal/parse/decls/presets.go
System operations
- Command runner
internal/parse/cmdtype
Other components
- User
- Local filesystem
- System commands
- Git
Connections 19
- User → CLI entry: invokes
- CLI entry → Initialize directory: dispatches
- CLI entry → List declarations: dispatches
- CLI entry → Run declarations: dispatches
- Initialize directory → Global config: loads config
- Initialize directory → Starter templates: copies template
- Initialize directory → Metadata and substitutions: substitutes version
- Initialize directory → Local filesystem: creates files
- Initialize directory → Git: initializes repository
- List declarations → Load declarations: loads declarations
- List declarations → Filter and format: lists by priority
- Run declarations → Load declarations: loads declarations
- Run declarations → Priority execution: executes selection
- Load declarations → Metadata and substitutions: loads metadata
- Load declarations → Declaration files: loads declarations
- Priority execution → Operation presets: dispatches preset
- Operation presets → Command runner: runs commands
- Command runner → Metadata and substitutions: expands substitutions
- Command runner → System commands: executes process