Commit Graph

85 Commits

Author SHA1 Message Date
Tim Byrne 375a34b97a
Test conditional submodule upgrade processing 2019-11-07 07:48:42 -06:00
Tim Byrne f2b2d505a2
Reinitialize submodules during upgrade 2019-11-05 16:36:05 -06:00
Tim Byrne 616baaeac6
Rename default template processor 2019-10-30 17:29:17 -05:00
Tim Byrne b62a4c77a6
Create an upgrade command
This command will assist users with migration from 1.x.x to 2.0.0.
2019-10-23 17:08:04 -05:00
Tim Byrne 0c9468c9b5
Ignore encrypted files (#69)
Append the contents of .config/yadm/encrypt to the repo's git ignore
list. This is to help prevent accidentally committing unencrypted
sensitive data.
2019-10-17 08:22:17 -05:00
Tim Byrne f3249e00b5
Ensure base directories for alternates before creation 2019-10-12 18:22:02 -05:00
Tim Byrne 6d5467951a
Properly handle missing "." in alternate conditions 2019-10-12 09:59:03 -05:00
Tim Byrne 4ea3ed9e2a
Allow storing alternates elsewhere (#90)
This change allows alternates to be stored in "$YADM_DIR/alt". The
correct path within the work tree will be symlinked.

Storing alternates within the work tree is still allowed. Both locations
will be considered when choosing an appropriate alternate file.
2019-10-12 09:59:02 -05:00
Tim Byrne aeb6a54ad7
Add `source` to templates (#163)
A new variable is exposed to templates, which holds the filename of the
template source. The primary use case is to be able to include a warning
message within the template. For example:

  # Do not edit. This file auto-generated from {{ yadm.source }}.
2019-10-11 07:23:52 -05:00
Tim Byrne 0c7aec6dd7
Clarify xfails are for deprecated features 2019-10-11 07:22:38 -05:00
Tim Byrne 3a192db420
Remove symlinks before processing a template 2019-10-11 07:20:03 -05:00
Tim Byrne 574945f010
Change yadm.cygwin-copy to yadm.alt-copy
This removes the constraint of only allowing the copy option on Cygwin
systems. Now any system can configure this option.
2019-10-09 18:47:42 -05:00
Tim Byrne e51166b7e8
Improve clone testing 2019-10-08 17:28:56 -05:00
Tim Byrne f3bde37f78
Support `-b <branch>` when cloning (#133) 2019-10-08 17:28:53 -05:00
Tim Byrne 6a3199ceea
Support DISTRO in alternates (#72) 2019-10-06 16:35:47 -05:00
Tim Byrne 444622a658
Support `else` statements in builtin templates 2019-10-05 11:43:48 -05:00
Tim Byrne e999929818
Change builtin templates to resemble jinja 2019-10-02 15:16:41 -05:00
Tim Byrne b411f9d74f
Split out processing of stale links 2019-10-02 15:16:10 -05:00
Tim Byrne c8a9165293
Remove warnings from tests
These warnings are related to bugs which are fully fixed.
2019-10-02 15:16:10 -05:00
Tim Byrne 36212cb752
Add new alternates processing the cygwin copy testing 2019-10-02 15:16:09 -05:00
Tim Byrne eeba216cfe
Mark deprecated tests 2019-10-02 15:16:09 -05:00
Tim Byrne d2afab6846
Fix newly discovered linting errors 2019-10-02 15:16:09 -05:00
Tim Byrne 2508378617
Upgrade yadm testbed
* Update software in Dockerfile
* Add j2cli
* Bump supported versions of linters
2019-10-02 15:16:09 -05:00
Tim Byrne cfda485b34
Implement future alternate processing 2019-10-02 15:16:02 -05:00
Tim Byrne e4e956fe21
Split discovery of alternates test data into a testable function 2019-09-27 08:40:32 -05:00
Tim Byrne c29292d02b
Split out processing of alt (past/future) 2019-09-27 08:40:31 -05:00
Tim Byrne 48fc6b0db7
Support XDG base directory specification
https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
2019-09-27 08:40:31 -05:00
Tim Byrne d87a6502af
Factor out some branches in utils:create_alt_files() 2019-04-12 07:54:23 -05:00
Tim Byrne 7bc8f02d68
Add tests for jinja includes 2019-04-12 07:54:23 -05:00
Tim Byrne 093fc24b1b
Test that links are removed for invalid alternates (#65) 2019-04-05 08:58:59 -05:00
Tim Byrne 2375a0955b
Standardize sort order
Prevent localizations from interfering with sorting order.
2019-04-05 08:58:30 -05:00
Tim Byrne fb1181c8a9
Add tests for directory alternates
While this feature was added back in version 1.05, tests were never
added for it. These tests have identified bugs in the directory
alternates.
2019-04-05 08:58:22 -05:00
Tim Byrne 58edf313aa
Process .yadm/encrypt in sorted order 2019-03-24 17:05:11 -05:00
Tim Byrne 826f9bc09e
Validate yaml files with yamllint 2019-03-21 23:05:57 -05:00
Tim Byrne c3a9b62189
Remove BATS-based tests 2019-02-25 17:08:07 -06:00
Tim Byrne e7f9616b39
Rewrite testing system (#119)
The new test system is written with py.test. These tests are more
comprehensive, run faster by an order of magnitude, and are far more
maintainable. The tests themselves conform to PEP8.
2019-02-20 07:48:25 -06:00
Tim Byrne 2517e4b4ac
Add test-case for exclusions in `.yadm/encrypt` (#86) 2017-09-21 14:21:22 -05:00
Tim Byrne cc30dfc24b
Re-number unit tests 2017-09-16 09:33:12 -05:00
Tim Byrne f23bdb8147
Remove last use of LS_PROGRAM
Globs are not determined by an `eval` of `ls` anymore. The only other
use of `ls` can be replaced with a simple `printf`.
2017-09-16 09:33:12 -05:00
Tim Byrne b78bb1eef4
Eliminate the use of `eval`
`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
2017-09-16 09:32:38 -05:00
Tim Byrne df952094a1
Add test case for supporting directories in .yadm/encrypt (#81) 2017-09-04 13:19:04 -05:00
Tim Byrne ebc90bfc98
Create secured private dirs (#74)
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.
2017-08-22 21:28:07 -05:00
Tim Byrne 557ce93fab
Add tests for hooks 2017-07-05 16:33:50 -05:00
Tim Byrne 5293db986a
Support `YADM_DISTRO` in Jinja templates (#68) 2017-07-03 16:21:27 -05:00
Tim Byrne 7538851fe3
Gracefully handle changes in yadm.cygwin-copy 2017-06-01 17:06:27 -05:00
Tim Byrne f8e0bd593d
Support `yadm.cygwin-copy` configuration (#62)
With `yadm.cygwin-copy` set to "true", alternate files will be copies
instead of symlinks, but only when running on Cygwin.
2017-05-31 18:28:54 -05:00
Tim Byrne 79e149ed25
Switch to semantic versioning 2017-05-10 08:00:29 -05:00
Tim Byrne 356c47a19f
Add Bash completion script (#60)
* Add completion script
* Add introspection
2017-04-24 07:49:10 -05:00
Tim Byrne eabf9091fb
Support WSL detection (#61)
`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.
2017-04-09 08:47:18 -05:00
Tim Byrne 9824de5410
Change template indicator to `##yadm.j2` 2017-03-31 16:42:51 -05:00