drop-dot v0.0.2
Drop-dot

Dot-drop is simple node.js utility that helps you sync your .config files/directories across multiple Unix computers using Dropbox.
First, install drop-dot via npm:
$ npm install -g drop-dotNext, create a .drop-dot folder in your ~/Dropbox directory along with an empty configuration file:
$ mkdir ~/Dropbox/.drop-dot
$ touch ~/Dropbox/.drop-dot/.drop-dotThen, populate this .drop-dot file with a list of the files and/or directories that you wish to sync with Dropbox. For example, the contents of your .drop-dot might look like the following:
~/.bashrc
~/.vimrc
~/.vim
~/.tmux.confNote: You are free to use the ~ symbol in this file to denote your home folder, but cannot (presently) use environment variables (i.e., $HOME, etc).
After you populate your config file, you can use drop-dot to place its files into your ~/Dropbox/.drop-dot folder:
$ drop-dot drop # on Computer #1In case you are curious, this is equivalent to running -- for each /path/to/file_or_dir written inside ~/Dropbox/.drop-dot/.drop-dot -- the following two commands:
$ sudo mv /path/to/file_or_dir ~/Dropbox/.drop-dot/file_or_dir
$ sudo ln -s ~/Dropbox/.drop-dot/file_or_dir /path/to/file_or_dirFinally, migrate to any other Unix computer synced to your Dropbox account, and run the following command:
$ drop-dot linkYou're done.
What this last command does is the following: for each /path/to/file_or_dir inside ~/Dropbox/.drop-dot, drop-dot creates a symlink corresponding to this address that points to the appropriate corresponding file/directory inside your ~/Dropbox/.drop-dot folder. This is equivalent to the following:
$ sudo ln -s ~/Dropbox/.drop-dot/file_or_dir /path/to/file_or_dirGraphical Representation
Here is a graphical representation of how this program would go about syncing ~/file1:
If you don't know what a "symlink" is, check out this.
Requirements
- A Unix system (i.e., linux or mac)
- Dropbox
Is this program safe?
This program is designed to never eat, move, or link a file if any sort of system conflict exists (you'll just get an error message printed to your console); however, use this at your own risk (and always make backups :)
TODO
Add the ability to individually add and remove files (instead of relying on a config file): i.e.:
$ drop-dot drop ... $ drop-dot remove ...
Add
drop-dot status:$ drop-dot status All of your files are synced!
ā Improve readability of error messages
- Allow the usage of environment variables in configuration files
Notes
Dot-drop is written in ClojureScript and transpiled to pure nodejs.