Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/erniebrodeur/dotfu
Manage/sync/share dotfiles via github.
https://github.com/erniebrodeur/dotfu
Last synced: 24 days ago
JSON representation
Manage/sync/share dotfiles via github.
- Host: GitHub
- URL: https://github.com/erniebrodeur/dotfu
- Owner: erniebrodeur
- License: other
- Created: 2013-05-12T20:49:22.000Z (over 11 years ago)
- Default Branch: development
- Last Pushed: 2013-06-07T10:30:21.000Z (over 11 years ago)
- Last Synced: 2024-04-30T17:04:48.370Z (8 months ago)
- Language: Ruby
- Size: 242 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Description
Dotfu is a shell command to help all of us manage our dotfiles. It is designed
to clone dotfiles from github and install them into your home directory in one command.It will also allow you to manage/switch/test other peoples dotfiles on the fly.
Right now it will install/uninstall/fetch files. It will not overwrite your current files, it will abort and let you move them.
Later backup originals, generate repo, search, ...
# Usage
Dotfu is a subcommand based cli like git. It supplies various subcommands that do
the tasks for you. ```--help``` works, but it is rough.## Arguments
Before we go over the commands, it is important to understand the repo format you use.
I don't know of a github uri, so we will use some shorthand like this ```user@repo:branch```. Even if we do switch to a uri, I will leave this shorthand.More about the fields:
* user: optional, if it's not supplied we try the config file for github.user
* repo: required, can be in the form of ```dotfiles-zsh``` or ```zsh```.
* branch: optional, if you want to specify the branch to use. Will switch on install, not fetch.## Commands
### Currently working:
* list: list all dotfiles-* directores
* fetch: Pull down a dotfiles- repo into the cache.
* install: implies fetch, then installs dotfiles- based on the dotfiles.json
* uninstall: remove the contents of a repo.
* search: search github for repo's based on .### Still to build
* clean: clean unused items from the cache.
* status: List which df repos that need to get updated.
* update: update repos.## Configfile
The config file will be a json blob. It will be named ```dotfu.json``` and
should be present at the base of the repo.## Fields
Currently only target_directory works.
* target_directory (optional): if not your home dir, where?
* ignore_patterns (optional): files in the repo to never install (good for readmes).
* segments (optional): see below# Segments
Segments are labeled selections of files in a repo to install selectively.
* pre_install_script
* post_install_script
* routesRoutes are glob patterns and a target directory for them.
## Contributing
1. Fork it
2. Create your feature branch (`git checkout -b feature-something`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin feature-something`)
5. Create new Pull Request