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 <https://github.com/RichiH/vcsh>`_
written in shell (yuck) and has git baked in
`dewi <https://github.com/ft/dewi>`_
written in perl (yuck) and didn't grok how it worked
`dotfilemanager <https://pypi.python.org/pypi/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.
Raw data
{
"_id": null,
"home_page": "",
"name": "yadoma",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "dotfiles,config management",
"author": "N.V. Haenel & Ingo Fruend",
"author_email": "github@ingofruend.net",
"download_url": "https://files.pythonhosted.org/packages/c6/9e/42c66bfaf4dfc80ffc176fdb4de65bc02a8b18b7424e24c9c2a39d3bc888/yadoma-59.0.post1.tar.gz",
"platform": null,
"description": "Edit 2023: yadoma was written by @esc a couple of years ago and ended up no\nlonger maintained. It seemed that I was the only user, so I'm taking over\nmaintenance. However, given the simplicity of the tool, I kept everything\nlargely the same, including this README. Hence, \"I\" refers to @esc rather than\nmyself. However, I'm changing the build process to tox (instead of the old\npybuilder), because pybuilder seemed to have problems with environment\nseparation that I wasn't able to just quickly fix.\n\n===================================\nyadoma: yet another dotfile manager\n===================================\n\nThis is my personal take on a dotfile-manager.\n\nPrinciples\n----------\n\n* Pile of symlinks approach\n* Declarative configuration\n* Composable\n* Versioning not baked in\n* Infinitely hackable\n\nPrior Art (or why I decided to roll my own)\n-------------------------------------------\n\n`vcsh <https://github.com/RichiH/vcsh>`_\n written in shell (yuck) and has git baked in\n`dewi <https://github.com/ft/dewi>`_\n written in perl (yuck) and didn't grok how it worked\n`dotfilemanager <https://pypi.python.org/pypi/dotfilemanager/>`_\n has weird conventions and strange config\n\nEdit: in 2018, I discovered that there are many more dotfile-managers out\nthere: https://dotfiles.github.io/\n\nExample\n-------\n\nGiven the yaml config ``config.yadoma`` in the directory ``config/public``::\n\n example-prog:\n files:\n -\n src: .rc_with_src\n dest: .rc_with_src_dest\n -\n src: .rc_with_out_dest\n - .plainrc\n\nAnd, given the following files of the directory::\n\n .plainrc\n .rc_with_src\n .rc_with_out_dest\n\nDoing::\n\n $ yadoma config/public\n\nWill create the following symlinks in the users ``$HOME`` for the program\n``example-prog``::\n\n\n .plainrc\n .rc_with_src_dest\n .rc_with_out_dest\n\nTODO and Ideas\n--------------\n\nMany.\n\n\nLicense\n-------\n\n\nCopyright 2016-2019 Valentin Haenel <valentin@haenel.co>\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed\nunder the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\nCONDITIONS OF ANY KIND, either express or implied. See the License for the\nspecific language governing permissions and limitations under the License.\n",
"bugtrack_url": null,
"license": "APACHE v2.0",
"summary": "Yet another dotfile manager",
"version": "59.0.post1",
"project_urls": null,
"split_keywords": [
"dotfiles",
"config management"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f2e842ebb1b5b26046b206edac5d3204260538d52c0eee7bd66f6072f3f4ffdf",
"md5": "d17c3b2fcebe2fe01c0f3d692bdce875",
"sha256": "0d91b2e7361f531554b5c314b2b5b83f9263439f5b8ae40b3020248824d93015"
},
"downloads": -1,
"filename": "yadoma-59.0.post1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d17c3b2fcebe2fe01c0f3d692bdce875",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 8052,
"upload_time": "2023-07-09T20:51:51",
"upload_time_iso_8601": "2023-07-09T20:51:51.242976Z",
"url": "https://files.pythonhosted.org/packages/f2/e8/42ebb1b5b26046b206edac5d3204260538d52c0eee7bd66f6072f3f4ffdf/yadoma-59.0.post1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c69e42c66bfaf4dfc80ffc176fdb4de65bc02a8b18b7424e24c9c2a39d3bc888",
"md5": "db23ebe92d8d55920eca9dc16f81241b",
"sha256": "b1d21726d40779f2d74a02b7f86842d12d197ba5dd5e26552c76f1e89bbe3a94"
},
"downloads": -1,
"filename": "yadoma-59.0.post1.tar.gz",
"has_sig": false,
"md5_digest": "db23ebe92d8d55920eca9dc16f81241b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7481,
"upload_time": "2023-07-09T20:51:53",
"upload_time_iso_8601": "2023-07-09T20:51:53.101570Z",
"url": "https://files.pythonhosted.org/packages/c6/9e/42c66bfaf4dfc80ffc176fdb4de65bc02a8b18b7424e24c9c2a39d3bc888/yadoma-59.0.post1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-09 20:51:53",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "yadoma"
}