The new ignore command does the following:
1. Scans ~/.yadm/encrypt and adds its entries to ~/.gitignore.
If ~/.gitignore doesn't exist, it's created. Any lines that begin
with # or ! are skipped, as well. If the entry is already in
~/.gitignore (either as /file, !/file, file, or !file), it's
skipped. While 'file' and '!file' could lead to unintended skips,
not including them would more likely lead to unintended skips.
2. Scans the list of actual files found that match ~/.yadm/encrypt
entries, and adds them to ~/.gitignore. For example, if
~/.yadm/encrypt contains .ssh/config##Linux, and .ssh/config exists,
it adds .ssh/config to ~/.gitignore, unless the entry is already in
~/.gitignore (either as /file, !/file, file, or !file).
- Since ~/.yadm/encrypt entries are rooted in $YADM_WORK without a
leading slash, a leading slash is added to the ~/.gitignore entries
to provide matching equivalency.
- A new option --yadm-ignore allows the user to override the location
of ~/.gitignore.
- Uses sed to trim any leading or trailing whitespace when reading
~/.yadm/encrypt and ~/.gitignore.
Update version number and update documentation
* Add basic Zsh completion (#71, #79)
* Support directories in `.yadm/encrypt` (#81, #82)
* Support exclusions in `.yadm/encrypt` (#86)
* Improve portability with printf (#87)
* Eliminate usage of `eval` and `ls`
`eval` has always been used to process the globs in `.yadm/encrypt`.
This is being removed, as there is a risk of executing "dirty" data
found in `.yadm/encrypt`.
Caveats of this change:
* Brace and tilde expansion will no longer work in `.yadm/encrypt`
* Paths with spaces must not be quoted anymore
Directories are created prior to merge during clone, and prior to any
Git command run.
This directly addresses CVE-2017-11353.
When cloning a repo which includes data in a .ssh or .gnupg directory,
if those directories do not exist at the time of cloning, yadm will
create the directories with mask 0700 prior to merging the fetched data
into the work-tree.
When running a Git command and .ssh or .gnupg directories do not exist,
create those directories with mask 0700 prior to running the Git
command. However, do not create those directories if
yadm.auto-private-dirs is false.
Update version number and update documentation
* Option for Cygwin to copy files instead of symlink (#62)
* Support `YADM_DISTRO` in Jinja templates (#68)
* Support pre/post hooks for every command (#70)
Update version number and update documentation
* Add Bash completion script (#60)
* Support WSL detection (#61)
* Add introspect command (used by completion)
`uname -s` was already being executed every run for *cygwin* detection.
I've consolidated all of the OS detection into a single function. This
also fixed the problem of running `uname -s` twice for the `alt`
command.
Update version number and update documentation
* Fix bug alternates based on `CLASS` (#51)
* Support globs and paths with space in .yadm/encrypt (#53, #54)
* Add support for alternate files using Jinja templates (#56, #58)
* Add `enter` command, for creating a sub-shell (#57)
* Support local.hostname properly (#59)
* Determine envtpl using `command -v` instead of `which` (more portable)
* Anchor the end of template file names in regex
* Quote variables to allow for whitespace in file names