1
0
Fork 0
mirror of synced 2024-06-18 05:31:09 -04:00
Yet Another Dotfiles Manager
Go to file
Erik Flodin 5818eeb9dd
Change handling of submodules at upgrade
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
2021-01-04 18:31:24 +01:00
.github Run "make test" in github workflow 2020-12-30 12:54:13 +01:00
completion zsh: -d can't be used as a global option 2020-12-29 21:30:00 +01:00
contrib/hooks Release 2.4.0 2020-02-06 07:53:18 -06:00
test Change handling of submodules at upgrade 2021-01-04 18:31:24 +01:00
.gitattributes Force eol=lf 2017-01-09 16:52:01 -06:00
.gitignore Use a common target to pick yadm to test in test/scripthost 2020-12-30 12:01:40 +01:00
bootstrap Standardize on &> when not appending output 2019-12-04 22:39:00 -06:00
CHANGES Update version number and update documentation 2020-12-30 16:59:58 -06:00
CONTRIBUTORS Update version number and update documentation 2020-12-30 16:59:58 -06:00
LICENSE Update GPLv3 LICENSE information 2019-03-14 18:25:02 -05:00
Makefile Use local version of yadm by default (in testhost/scripthost) 2021-01-02 00:05:00 +01:00
pylintrc Move min-similarity-lines to new section 2019-10-02 15:16:10 -05:00
pytest.ini Mark deprecated tests 2019-10-02 15:16:09 -05:00
README.md Update version number and update documentation 2020-12-30 16:59:58 -06:00
yadm Change handling of submodules at upgrade 2021-01-04 18:31:24 +01:00
yadm.1 Update version number and update documentation 2020-12-30 16:59:58 -06:00
yadm.md Update version number and update documentation 2020-12-30 16:59:58 -06:00
yadm.spec Update version number and update documentation 2020-12-30 16:59:58 -06:00

yadm - Yet Another Dotfiles Manager

Latest Version Homebrew Version OBS Version Arch Version License
Master Update Develop Update Website Update
Master Status Develop Status GH Pages Status Dev Pages Status

https://yadm.io/

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.