Edit 2023: yadoma was written by @esc a couple of years ago and ended up no longer maintained. It seemed that I was the only user, so I’m taking over maintenance. However, given the simplicity of the tool, I kept everything largely the same, including this README. Hence, “I” refers to @esc rather than myself. However, I’m changing the build process to tox (instead of the old pybuilder), because pybuilder seemed to have problems with environment separation that I wasn’t able to just quickly fix.
yadoma: yet another dotfile manager
This is my personal take on a dotfile-manager.
Principles
Pile of symlinks approach
Declarative configuration
Composable
Versioning not baked in
Infinitely hackable
Prior Art (or why I decided to roll my own)
- vcsh
written in shell (yuck) and has git baked in
- dewi
written in perl (yuck) and didn’t grok how it worked
- dotfilemanager
has weird conventions and strange config
Edit: in 2018, I discovered that there are many more dotfile-managers out there: https://dotfiles.github.io/
Example
Given the yaml config config.yadoma in the directory config/public:
example-prog:
files:
-
src: .rc_with_src
dest: .rc_with_src_dest
-
src: .rc_with_out_dest
- .plainrc
And, given the following files of the directory:
.plainrc .rc_with_src .rc_with_out_dest
Doing:
$ yadoma config/public
Will create the following symlinks in the users $HOME for the program example-prog:
.plainrc .rc_with_src_dest .rc_with_out_dest
TODO and Ideas
Many.
License
Copyright 2016-2019 Valentin Haenel <valentin@haenel.co>
Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Metadata
Release files for yadoma 59.0.post1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| yadoma-59.0.post1.tar.gz | 7.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| yadoma-59.0.post1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.5 kB
Release files / yadoma-59.0.post1.tar.gz
| Download URL | yadoma-59.0.post1.tar.gz |
|---|---|
| Size | 7.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b1d21726d40779f2d74a02b7f86842d12d197ba5dd5e26552c76f1e89bbe3a94
|
|
BLAKE2b-256 checksum How to use checksums |
c69e42c66bfaf4dfc80ffc176fdb4de65bc02a8b18b7424e24c9c2a39d3bc888
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.8.10
|
Release files / yadoma-59.0.post1-py3-none-any.whl
| Download URL | yadoma-59.0.post1-py3-none-any.whl |
|---|---|
| Size | 8.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0d91b2e7361f531554b5c314b2b5b83f9263439f5b8ae40b3020248824d93015
|
|
BLAKE2b-256 checksum How to use checksums |
f2e842ebb1b5b26046b206edac5d3204260538d52c0eee7bd66f6072f3f4ffdf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.8.10
|