Yet Another Dotfiles Manager
5818eeb9dd
Start with doing "submodule absorbgitdirs" as otherwise "submodule deinit" will fail if a module has been cloned first and later added as a submodule (as it will then contain the .git dir instead of it being under the superprojects .git dir). Then try to deinit the submodules before moving the repo and abort the upgrade if it fails for any submodule. Then do the move and finally initialize the submodules that were initialized before the upgrade. See #285 |
||
---|---|---|
.github | ||
completion | ||
contrib/hooks | ||
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.