Yet Another Dotfiles Manager
42c74efbac
A local class is set with: $ yadm config local.class cls1 More classes can be added with: $ yadm config --add local.class cls2 $ yadm config --add local.class cls3 Any of cls1, cls2 and cls3 can be used in an alternate condition. For templates, the existing variable yadm.class/YADM_CLASS is set to the last class (i.e. cls3) to remain compatible with how it works today and with what the following command gives: $ yadm config local.class For the default template processor there is no explicit yadm.classes variable. Instead a yadm.class condition will check against all classes. For the other processors, a new template variable YADM_CLASSES will be set to all classes separated by newline. For jinja2 templates a class can be checked with: {%- if "cls" in YADM_CLASSES.split("\n") %} For esh templates the logic is a bit more complex, but it is possible to do. Fixes #185. |
||
---|---|---|
.github | ||
completion | ||
contrib | ||
test | ||
.gitattributes | ||
.gitignore | ||
bootstrap | ||
CHANGES | ||
CONTRIBUTORS | ||
LICENSE | ||
Makefile | ||
pylintrc | ||
pytest.ini | ||
README.md | ||
yadm | ||
yadm.1 | ||
yadm.md | ||
yadm.spec |
yadm - Yet Another Dotfiles Manager
yadm is a tool for managing dotfiles.
- Based on Git, with full range of Git's features
- Supports system-specific alternative files or templated files
- Encryption of private data using GnuPG, OpenSSL, transcrypt, or git-crypt
- Customizable initialization (bootstrapping)
- Customizable hooks for before and after any operation
Complete features, usage, examples and installation instructions can be found on the yadm.io website.
A very quick tour
# Initialize a new repository
yadm init
# Clone an existing repository
yadm clone <url>
# Add files/changes
yadm add <important file>
yadm commit
# Encrypt your ssh key
echo '.ssh/id_rsa' > ~/.config/yadm/encrypt
yadm encrypt
# Later, decrypt your ssh key
yadm decrypt
# Create different files for Linux vs MacOS
yadm add path/file.cfg##os.Linux
yadm add path/file.cfg##os.Darwin
If you enjoy using yadm, consider adding a star to the repository on GitHub. The star count helps others discover yadm.