Browse Source

Update documentation to mention new command

master
Noah Petherbridge 3 years ago
parent
commit
91cb299406
2 changed files with 31 additions and 1 deletions
  1. +28
    -1
      README.md
  2. +3
    -0
      home/bin/dfm

+ 28
- 1
README.md View File

@@ -8,9 +8,36 @@ my config scripts.

```bash
~$ 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

* `./setup`


+ 3
- 0
home/bin/dfm View File

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


Loading…
Cancel
Save