update README to the current status of the project

This commit is contained in:
Adam Gausmann 2025-04-17 11:41:47 -05:00
parent 022f9468c6
commit fc0067c35e

View file

@ -1,40 +1,46 @@
# dotfiles # dotfiles
My personal dotfiles and configurations, generated from templates with Mako! My personal dotfiles and configurations, generated from Jinja2 templates.
## Contents ## Contents
- `install.py` - The script that generates and installs the templates. (Requires Mako) - `install.py` - The script that generates and installs the templates. (Requires
the virtual environment specified using Pipenv)
- `install` - Updates submodules and runs `pipenv run install.py "$@"`. - `install` - Updates submodules and runs `pipenv run install.py "$@"`.
- `hosts` - Host-specific configuration files. - `hosts/` - Host-specific configuration files.
- `templates/` - The set of base template files. - `templates/` - The set of base template files.
- `include/` - Template files that do not map directly to a generated file.
- `raw/` - Raw files to be copied directly to the home directory (useful for submodules). - `raw/` - Raw files to be copied directly to the home directory (useful for submodules).
## How it Works ## How it works
For each file in the `templates/` directory (recursively), the installation script The host configuration is parsed from the file in `hosts/` that corresponds to
will parse and render it as a Mako template and output it with the same path but the hostname. This file mainly contains system information like the size and
relative to the home directory. Mako is configured to look for additional files in the position of monitors and the names of the built-in network interfaces.
`include/` directory if they don't exist in `templates/`, so use that if you reference
other template files that aren't supposed to be rendered as a standalone file.
## Requirements Then, for each file in the `templates/` directory (recursively), the script will
parse and render it as a Jinja2 template with the host's configuration as an
Basic requirements (`install`): input variable. The result will be written to the same path but relative to the
home directory. Any `.j2` file suffix will also be automatically stripped.
- pipenv
Low-level requirements (`install.py`):
- mako
- toml
## Installation ## Installation
Made easy by the `install` script. Use `install --help` to see customization options. Made easy by the `install` script. Use `install --help` to see customization
options.
Before running, set up the Python virtual environment with `pipenv install`.
## Questions/Comments/Contributing
At the time of writing, this project is hosted on a Forgejo instance at
<https://forge.gaussian.dev>. Because Forgejo [doesn't yet][federation-roadmap]
support federated issues/PRs, I am accepting any comments or patches at
`adam@gaussian.dev`. If you want to send a patch and don't know how, a simple
text file attachment with the contents of `git show` will work. However, if
you're already familiar with [`git send-email`], that is also fine with me!
[federation-roadmap]: https://codeberg.org/forgejo-contrib/federation
[`git send-email`]: https://git-send-email.io