Add your description here
Project description
Contents
Overview
dbrownell_Dotter is a declarative dotfile management tool that helps you install, synchronize, and manage configuration files across your system. It supports:
- File installation via copying, symlinking, or template rendering
- Jinja2 templating for dynamic configuration files
- Variable substitution from command-line arguments or environment variables
- Regex-based substitutions for modifying existing files in-place
- Reverse synchronization to push manual changes back to source files
Configuration is defined in YAML or JSON5 files, making it easy to version control and share your dotfile setup. See davidbrownell/dotfiles for an example of such a configuration.
How to use dbrownell_Dotter
Basic Commands
Install dotfiles:
uvx dbrownell_Dotter Install <config_file(s)> [OPTIONS]
Reverse sync changes back to source:
uvx dbrownell_Dotter ReverseSync <config_file(s)> [OPTIONS]
Common options:
--var key=value- Pass template variables (can be used multiple times)--dry-run- Preview changes without modifying files--verbose- Show verbose output--debug- Show debug information
Variables
Variables can be used in configuration files and jinja templates.
| Variable Type | Format |
|---|---|
| Environment Variable | ${VAR_NAME} |
| Command Line Variable | {{ VAR_NAME }} |
Configuration File Format
variable_definitions:
username: "Your username (ex: `john`)"
email: "Your email address (ex: `john@example.com`)"
entries:
# Simple file copy/link
- source: my_config.txt
dest: ~/.config/myapp/config.txt
# Jinja2 template (auto-detected by .jinja, .jinja2, or .j2 extension)
- source: bashrc.jinja
dest: ~/.bashrc
# Regex substitution on existing file
- source: null
dest: /etc/myapp/config.conf
substitutions:
- pattern: "^EMAIL=.*$"
replacement: "EMAIL={{ email }}"
Examples
Install with variables:
uvx dbrownell_Dotter Install config.yaml --var username=john --var email=john@example.com
Preview changes before installing:
uvx dbrownell_Dotter Install config.yaml --dry-run
Sync manual edits back to source files:
uvx dbrownell_Dotter ReverseSync config.yaml --var username=john
Installation
Note that these steps are not required when invoking dbrownell_Dotter via uvx.
| Installation Method | Command |
|---|---|
| Via uv | uv add dbrownell_Dotter |
| Via pip | pip install dbrownell_Dotter |
Verifying Signed Artifacts
Artifacts are signed and verified using py-minisign and the public key in the file ./minisign_key.pub.
To verify that an artifact is valid, visit the latest release and download the .minisign signature file that corresponds to the artifact, then run the following command, replacing <filename> with the name of the artifact to be verified:
uv run --with py-minisign python -c "import minisign; minisign.PublicKey.from_file('minisign_key.pub').verify_file('<filename>'); print('The file has been verified.')"
Development
Please visit Contributing and Development for information on contributing to this project.
Additional Information
Additional information can be found at these locations.
| Title | Document | Description |
|---|---|---|
| Code of Conduct | CODE_OF_CONDUCT.md | Information about the norms, rules, and responsibilities we adhere to when participating in this open source community. |
| Contributing | CONTRIBUTING.md | Information about contributing to this project. |
| Development | DEVELOPMENT.md | Information about development activities involved in making changes to this project. |
| Governance | GOVERNANCE.md | Information about how this project is governed. |
| Maintainers | MAINTAINERS.md | Information about individuals who maintain this project. |
| Security | SECURITY.md | Information about how to privately report security issues associated with this project. |
License
dbrownell_Dotter is licensed under the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dbrownell_dotter-0.4.2.tar.gz.
File metadata
- Download URL: dbrownell_dotter-0.4.2.tar.gz
- Upload date:
- Size: 9.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8a6488276b31ca9fd3b1d2e55aa9e4b151cd3c31c38dca6eecad3f34a16721a
|
|
| MD5 |
22f1e5c3e51d4eebf8a12eef06c7c105
|
|
| BLAKE2b-256 |
7770dd656df870d756eef556ec14ec7fdcab66328e2f5b6cbcb226333ac3311e
|
File details
Details for the file dbrownell_dotter-0.4.2-py3-none-any.whl.
File metadata
- Download URL: dbrownell_dotter-0.4.2-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61a28c3a86b2525bf6db19b74d00c9cc87cf35dded8aa914a30dc46816b36c9a
|
|
| MD5 |
3f794795cf237a2d3d5a9831aa0fd53e
|
|
| BLAKE2b-256 |
2a5037d2c04ebeee2340cf6b050f369d56145f9d214a6fa444ce8adc61938615
|