1
0

Update documentation to mention new command

This commit is contained in:
Noah 2017-01-11 13:12:15 -08:00
parent 41a3ce483f
commit 91cb299406
2 changed files with 31 additions and 1 deletions

View File

@ -8,9 +8,36 @@ my config scripts.
```bash ```bash
~$ git clone git@github.com:kirsle/.dotfiles ~$ git clone git@github.com:kirsle/.dotfiles
~$ ./.dotfiles/setup --install ~$ ./.dotfiles/setup
``` ```
# Dotfiles Manager (dfm)
The dotfiles repo is managed by a `dfm` command, which gets installed into
`~/bin` automatically. (The `.dotfiles/setup` script is just an easy alias
to this command).
See `dfm --help` for documentation. Briefly:
* `dfm setup` creates symlinks to all the files in `./home` into `$HOME`.
* `dfm update` does a `git pull` and installs any new dotfiles.
* `dfm check-update` reminds you every 15 days to run `dfm update` (but
doesn't remind you more than once per 24 hours).
In case one of the target files already exists (and is not a symlink), it is
copied into `.dotfiles/backup` before being deleted and relinked.
The commands take optional arguments:
* `dfm setup --force`: forcefully re-link all dotfiles, deleting any links
that already exist.
* `dfm setup --copy`: tell it not to use symlinks but instead make normal
file copies into `$HOME`.
* `dfm check-update --force`: always show the update reminder.
The `.dotfiles/setup` script passes all options along to `dfm`, so you can
do `.dotfiles/setup --copy` for example.
# Layout # Layout
* `./setup` * `./setup`

View File

@ -267,6 +267,9 @@ sub crawl {
# Existing non-link targets should be backed up. # Existing non-link targets should be backed up.
if (-f $target && !-l $target) { if (-f $target && !-l $target) {
print "Back up existing file to: $backup\n"; print "Back up existing file to: $backup\n";
if (!-d $BACKUP) {
mkdir($BACKUP) unless $noop;
}
copy($target, $backup) unless $noop; copy($target, $backup) unless $noop;
unlink($target) unless $noop; unlink($target) unless $noop;
} }