Expanded README

Figured defining the syntax in the file would be a good start to getting back
into coding the project.
This commit is contained in:
Josh Sherman 2014-06-28 15:38:59 -04:00
parent 7f2e5eb8e8
commit 93b7d8163b

View file

@ -1,4 +1,90 @@
tilde # tilde
=====
$HOME is where the heart is. Manage it with class. $HOME is where the heart is. Manage it with class.
## Purpose
The purpose of `tilde` is to define an easily adoptable directory structure for dotfiles projects. The reason for having a common directory structure across projects is to make merging other peoples dotfiles into your own a breeze. In addition to managing and setting up your dotfiles, `tilde` provides package management and allows you to extend the install by way of a easy to follow YAML file.
## Installation
To install `tilde`, run this from the command-line:
TODO
## Directory Structure and Files
To leverage `tilde`s symlinking capabilities you will need to conform to the following directory structure. The directories and files list here are optional, so only include what you want. Also be aware that you can include any additional directories and/or files that youd like. They will simply be ignored unless you have specified commands in your `tilde.yml`.
.
├── bash/
│ ├── bash_profile
│ └── bashrc
├── bin/
│ └── ...
├── git/
│ ├── hooks/
│ │ └── ...
│ ├── scripts/
│ │ └── ...
│ └── gitconfig
├── hg/
│ └── hgrc
├── launchd/
│ └── ...
├── mutt/
│ └── muttrc
├── vim/
│ └── vimrc
├── zsh/
│ ├── themes/
│ │ └── ...
│ └── zshrc
└── tilde.yml
## Configuration
If you are using the package management functionality and/or specifying additional commands you will need to include `tilde.yml` in the root of your project.
packages:
brew:
- mysql
- launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
- launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
- wget
gem:
- sass
npm:
- less@1.3
Packages are listed in the `packages:` section of the file, grouped by package manager. `tilde` supports `apt` (`apt-get` or `aptitude`), `brew`, `gem` and `npm`, feel free to fork and add in your preferred package manager if its not there. After each package, you can list out any commands that need to be run after the package is installed. The packages themselves are installed in the order that they are listed in the file, be mindful of this to avoid any dependency problems. Also note that `npm` packages are installed with the `-g` flag to install them globally.
## Usage
### Installing dotfiles
tilde install username/repository
Clones the specified GitHub repository to `~/.tilde/username/respository`, symlinks the files and directories, installs packages and runs any additional commands specified in the `tilde.yml` file.
### Updating / reinstalling currently installed dotfiles
tilde update
Pulls down changes from the remote GitHub repository, re-symlinks files and directories, installs all packages and runs all additional commands specified in the `tilde.yml` file (new and existing).
### Merging from another repository
tilde merge username/repository
Attempts to merge the entire repository into your currently installed dotfiles. If there are existing files, you will be prompted to merge them manually. Upon completion your installed dotfiles will be commited and pushed back to your remote GitHub repository.
tilde merge username/repository/path/to/file/or/directory
Attempts to merge the specified file or directory into your currently installed dotfiles. If there are existing files, you will be prompted to merge them manually. Upon completion, your installed dotfiles will be commited and pushed back to your remote GitHub repository.
### Save changes to your installed dotfiles
tilde save
If there are any manual changes to your dotfiles, they will be commited and pushed to your remote GitHub repository.