Commit Graph

8 Commits

Author SHA1 Message Date
Erik Flodin 42c74efbac
Add support for multiple local classes
A local class is set with:
$ yadm config local.class cls1

More classes can be added with:
$ yadm config --add local.class cls2
$ yadm config --add local.class cls3

Any of cls1, cls2 and cls3 can be used in an alternate condition.

For templates, the existing variable yadm.class/YADM_CLASS is set to
the last class (i.e. cls3) to remain compatible with how it works
today and with what the following command gives:
$ yadm config local.class

For the default template processor there is no explicit yadm.classes
variable. Instead a yadm.class condition will check against all
classes.

For the other processors, a new template variable YADM_CLASSES will be
set to all classes separated by newline. For jinja2 templates a class
can be checked with: {%- if "cls" in YADM_CLASSES.split("\n") %}

For esh templates the logic is a bit more complex, but it is possible
to do.

Fixes #185.
2021-12-27 21:14:09 +01: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 cfda485b34
Implement future alternate processing 2019-10-02 15:16:02 -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 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 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