You're so money and you don't even know it.
Find a file
2014-06-28 15:42:27 -04:00
.gitignore Started working through package managers 2014-01-30 02:37:03 -05:00
LICENSE Updated name in the LICENSE 2014-06-28 14:23:31 -04:00
README.md Added note about brew taps 2014-06-28 15:42:27 -04:00
tilde Added some action items, expanded apt 2014-06-28 14:20:08 -04:00

tilde

$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 tildes 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:
    - Homebrew/homebrew-php
    - 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. Please note that brew accepts both taps and packages and 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.