1
0
mirror of https://github.com/TheLocehiliosan/yadm synced 2026-03-02 03:49:29 +00:00
Commit Graph

72 Commits

Author SHA1 Message Date
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
Tim Byrne
fda2da6a5b Fix tests that set local.hostname (#59) 2017-03-31 12:43:32 -05:00
Tim Byrne
3a87fe311a Add test case for envtpl missing 2017-03-31 00:04:28 -05:00
Tim Byrne
aaa4152fac Remove trailing whitespace 2017-03-30 21:58:26 -05:00
Tim Byrne
fd6fa8c923 Merge pull request #58 from janschulz/jinja_processing
Excluding yadm.md changes (these will happen during a release)
2017-03-30 17:00:27 -05:00
Tim Byrne
6974e4ce8c Add tests for enter command 2017-03-30 16:30:39 -05:00
Jan Schulz
a479b70d8a Add jinja processing to alt command
With the new functionality, when the 'alt' command is called (or automatically
triggered), any file with a name ending in '##yadm_tmpl' is treated as a jinja
template. The template is processed by envtpl and the result is written to a
file without the '##yadm_tmpl' name. The variables passed into the template
processing are

  YADM_CLASS
  YADM_OS
  YADM_HOSTNAME
  YADM_USER

These variables are set according to the normal rules for
CLASS, OS, HOSTNAME, and USER during the alt processing.
2017-03-26 03:49:24 +02:00
Tim Byrne
297df5d231 Add tests for classes with a range of names (#51) 2017-03-25 11:32:06 -05:00
Tim Byrne
d80bbff2b9 Acceptance tests for encrypt globs and paths with space (#53, #54) 2017-03-24 17:37:40 -05:00
Tim Byrne
d28df86494 Store class/os/host/user overrides in the local repo config
Overrides are meant to be local to each system, unlike other
configurations which are often added to a user's dotfiles repository.

With this change, the configurations change names:

  alt.class => local.class
  alt.os    => local.os
  alt.host  => local.host
  alt.user  => local.user
2017-01-26 10:48:40 -06:00
Tim Byrne
76d90db627 Replace "TODO text" for yadm config (#46) 2017-01-25 17:31:56 -06:00
Tim Byrne
671b5c6ec6 Support both gpg1 and gpg2 missing key error messages 2017-01-25 09:13:59 -06:00
Tim Byrne
12a23178d8 Tests for offering bootstrap during clone (#45) 2017-01-25 08:31:40 -06:00
Tim Byrne
3f1a8364ae Add tests for bootstrap command (#42) 2017-01-23 17:53:40 -06:00