Erik Flodin
a321c88c7c
Support passing relative paths to --yadm-* and -w
...
Relative paths are expanded relative the current working dir as
expected.
2021-01-08 21:45:55 +01:00
Erik Flodin
6378fe3073
Print errors to stderr
...
This makes it possible to run e.g. "yadm -Y foo introspect repo
2>/dev/null" and get an empty output instead of getting the error
message about foo not being fully qualified.
2021-01-05 21:57:32 +01:00
Erik Flodin
cd50c128ba
Fix test when test is run from a git worktree
2021-01-05 21:56:50 +01:00
Tim Byrne
0b4aa767fb
Merge pull request #293 from erijo/submodule-upgrade
2021-01-04 12:52:39 -06:00
Erik Flodin
5818eeb9dd
Change handling of submodules at upgrade
...
Start with doing "submodule absorbgitdirs" as otherwise "submodule
deinit" will fail if a module has been cloned first and later added as
a submodule (as it will then contain the .git dir instead of it being
under the superprojects .git dir).
Then try to deinit the submodules before moving the repo and abort the
upgrade if it fails for any submodule. Then do the move and finally
initialize the submodules that were initialized before the upgrade.
See #285
2021-01-04 18:31:24 +01:00
Erik Flodin
230b8b9374
Basic test to verify upgrade using real yadm releases
...
Both with and without submodules.
2021-01-04 17:33:48 +01:00
Tim Byrne
7c1192ae2e
Support upgrading from version 1 repos
...
* yadm upgrade now updates legacy paths created by yadm 1
* Warnings are issued for invalid alternates again
2020-12-30 14:19:49 -06:00
Tim Byrne
0d3ff086c5
Add test for --no-zle shell option
2020-12-29 17:58:51 -06:00
Erik Flodin
48e7337ef1
Upgrade to latest pytest version (6.2.1)
2020-12-29 21:51:57 +01:00
Erik Flodin
ec3956c560
Configure git email and name in docker
...
to make it easier to use yadm in the container. Set it in the system
config (i.e. /etc/gitconfig) to avoid getting a clash if one wants to
clone an existing yadm repo that contains a .gitconfig.
2020-12-29 21:50:56 +01:00
Erik Flodin
6fc510f473
Include released versions of yadm in docker images
...
Make it easier to test upgrades (#276 ).
2020-12-29 19:49:41 +01:00
Erik Flodin
6df2a5df74
Shrink docker image
...
Don't install apt recommendations and use the ADD directive instead of
running curl in the image. Saves ~380MB in docker image size.
2020-12-29 19:11:45 +01:00
Erik Flodin
5e9c5cf66c
Issue legacy path warnings to stderr
...
To make it possible to ignore the warning e.g. when running yadm
introspect repo in the bash completion.
2020-12-27 22:33:15 +01:00
Tim Byrne
df2ff5ec70
Remove deprecated option cygwin-copy
2020-12-26 12:34:58 -06:00
Tim Byrne
74df722840
Add tests for hook executable bit
2020-12-22 11:52:44 -06:00
Tim Byrne
99897124e6
Verify extension does not modify alt score
2020-12-22 10:51:23 -06:00
Tim Byrne
d298b42653
Merge pull request #257 from erijo/extension
2020-12-22 10:08:30 -06:00
Tim Byrne
c4b419d98e
Add --version and --help as yadm internal commands ( #267 )
2020-12-21 17:06:14 -06:00
Tim Byrne
6b068a141d
Remove superfluous f-strings
2020-12-21 17:06:14 -06:00
Tim Byrne
c8d516c67d
Bump versions of required linters
2020-12-21 17:06:14 -06:00
Tim Byrne
4b5f16d73a
Improve support for default branches ( #231 , #232 )
...
Unless a branch is specified, the default remote HEAD is used during
clone. Also a local master branch is not created if it is not the remote
HEAD.
2020-12-06 13:23:25 -06:00
Tim Byrne
4cb13d5d08
Remove unnecessary LEGACY_WARNING_ISSUED flag
2020-11-25 23:18:26 -06:00
Tim Byrne
13a3cdc8a8
Remove reporting of invalid alts
2020-11-25 23:18:25 -06:00
Tim Byrne
7997dc9a3d
Update upgrade
...
Upgrade will only move 2.0.0 paths to 3.0.0 standards
2020-11-25 23:18:25 -06:00
Tim Byrne
62b109ad2d
Rename yadm_y -> yadm_cmd
...
-Y is no longer used when running commands
2020-11-22 17:09:44 -06:00
Tim Byrne
8efe2c8fad
Improve tests to use XDG* variables
...
Instead of overriding YADM_DIR via -Y, set the XDG* environment
variables.
2020-11-22 17:09:44 -06:00
Tim Byrne
fc66b6b71b
Support XDG_DATA_HOME ( #208 )
...
* Create a YADM_DATA base (that is the source for repo & archive)
* Add --yadm-data to override
* Default YADM_DATA will be determined by XDG_DATA_HOME
2020-11-22 17:09:44 -06:00
Erik Flodin
f22c4d04cc
Add support for the extension "condition"
...
This special condition doesn't affect the selection process and is only
supported to support syntax highlighting and language detection for alt files
as reported in #239 .
2020-10-25 10:41:52 +01:00
Tim Byrne
b19c78b8e2
Remove support for YADM_COMPATIBILITY=1 ( #242 )
2020-10-17 17:41:09 -05:00
Tim Byrne
a66d3c148c
Remove tests for deprecated alternate processing
2020-10-17 17:39:24 -05:00
Erik Flodin
9bcf070dfe
Add support for including files using the default template processor
...
The syntax is '{% include "file" %}' where file is either an absolute path or a
path relative to the current template file's directory.
Variables in the included file will be replaced as for the main template. But
the included file can't include files itself.
2020-10-12 16:13:50 +02:00
Tim Byrne
e0daf86334
Add encryption unit tests
2020-10-07 01:44:35 -05:00
Tim Byrne
59c60a4675
Change default archive name to "archive"
2020-09-25 12:10:34 -05:00
Tim Byrne
05ae6f0257
Add config yadm.openssl-old
...
The newer versions (OpenSSL 1.1.1 or LibreSSL 2.9.1) support the pbkdf2
key derivation function, while older versions do not. In addition the
new versions have changed the default digest to SHA256 instead of MD5.
Files encrypted with older versions would throw warnings about
deprecated key derivation used files encrypted with newer versions +
pbkdf2 would not be decryptable using older versions These problems
matter, when many users maintain their dotfiles across different systems
with different levels of OpenSSL support.
A new boolean config option has been added, yadm.openssl-old
* If false, use options -pbkdf2 -iter 100000 -md sha512
* If true, use options -md md5 (and if decrypting with newer versions
warnings will be printed)
2020-09-25 10:04:18 -05:00
Tim Byrne
4ae504c533
Merge alternative cyphers changes into develop
2020-07-17 14:07:10 -05:00
Tim Byrne
102ba5d558
Preserve file mode of template ( #193 )
...
Any processed templates will inherit the file mode of the source
template.
2020-07-11 21:52:28 -05:00
Tim Byrne
6654e29c62
Merge pull request #220
2020-07-08 16:17:24 -05:00
Tim Byrne
87f81143b2
Add unit test for alternate order
...
Ensure that any alternates for YADM_CONFIG are processed prior to
templates.
2020-07-08 16:16:48 -05:00
Tim Byrne
6d8494a35f
Fix linting errors
2020-07-08 15:30:15 -05:00
jonasc
9ee83c4b3f
Update test/test_config.py
2020-07-08 15:13:06 -05:00
jonasc
60b23e33e8
Assert existence of config file's parent directory
...
Fixes TheLocehiliosan/yadm#226
When a config file path is passed to yadm whose parent directory does
not exist, git (and hence yadm) fails without writing the file.
Yadm should, however, make sure that the directory exists s.t. git can
just write to the file.
2020-07-08 15:13:03 -05:00
Jonathan Daigle
f348e154c7
Add support for ESH
2020-05-27 19:38:15 -04:00
Tim Byrne
0995f38b06
Merge pull request #138 from ldotlopez/master
...
I signed all commits first
2020-02-27 08:24:25 -06:00
Luis López
831c9ec09d
Testing: add new config items to tests
2020-02-27 08:21:48 -06:00
James Clark
77d2da4e9b
Support architecture in alternates ( #202 )
2020-02-22 02:08:53 +00:00
Tim Byrne
4b99ece480
Support transcrypt ( #197 )
...
Support is inherently provided by `enter`, which supports a command.
I've added a `transcrypt` command, which is really just an alias
under-the-hood for "enter transcrypt".
2020-02-21 08:05:56 -06:00
Tim Byrne
45f1d93193
Add test for WSL identification
2020-02-03 08:30:34 -06:00
Tim Byrne
9a2883985b
Test for escaped values in YADM_HOOK_FULL_COMMAND
2020-01-24 08:33:30 -06:00
Tim Byrne
3b820835ab
Test for warnings from man ( #195 )
2020-01-21 07:26:10 -06:00
Tim Byrne
76c82c763e
Improve identification of WSL ( #196 )
...
Ignore case when searching for Microsoft inside /proc/version.
2020-01-20 07:52:50 -06:00
Tim Byrne
75d2747aa0
Add test for multiple recipients
2020-01-15 09:17:26 -06:00
Tim Byrne
d9f68978fa
Add test for quoted os-release
2020-01-14 07:21:02 -06:00
Tim Byrne
6e444736ab
Tests for encrypt_with_checksums hooks
2020-01-13 08:06:15 -06:00
Tim Byrne
ba5829ad48
Confirm exit status for enter w/cmd
2019-12-16 17:11:07 -06:00
Tim Byrne
d3a2a06184
Support git-crypt ( #168 )
...
Support is inherently provided by `enter`, which now supports a command.
I've added a `git-crypt` command, which is really just an alias
under-the-hood for "enter git-crypt".
2019-12-16 17:11:06 -06:00
Tim Byrne
b9f5fdaafa
Support GNUPGHOME environment variable ( #134 )
2019-12-14 13:24:39 -06:00
Tim Byrne
84a173551e
Only assert private dirs, when worktree = $HOME ( #171 )
2019-12-14 13:24:32 -06:00
Tim Byrne
46105aae47
Set YADM_WORK within configure_paths
2019-12-12 08:00:10 -06:00
Tim Byrne
18e5fcfacc
Only assert private dirs, when worktree = $HOME
2019-12-11 08:37:45 -06:00
Tim Byrne
e7d2406af3
Export GIT_WORK_TREE during yadm enter
( #160 )
2019-12-08 15:17:47 -06:00
Tim Byrne
32baf81b56
Support specifying a command after yadm enter
2019-12-08 15:17:47 -06:00
Tim Byrne
397d45ccd0
Suppress insecure memory warnings
2019-12-05 15:02:47 -06:00
Tim Byrne
437ae2b719
Add --force-linters option to pylint ( #179 )
...
When this option is provided, linters will be run regardless of the
version installed. Normally tests are skipped if the linters are not the
supported version.
2019-12-05 15:02:47 -06:00
Tim Byrne
5d484ca825
Test with GnuPG 2 ( #179 )
...
Take advantage of pinentry-mock to obtain passphrases, instead of using
"expect" (which requires GnuPG 1).
2019-12-05 15:02:47 -06:00
Tim Byrne
e5ff95d09c
Create gnupg fixture
...
This fixture is a session scoped gnupg home directory, along with a
method to set the mocked password which will be used by the
pinentry-mock program.
2019-12-05 15:02:46 -06:00
Tim Byrne
3aefeeff0f
Create pinentry-mock
...
This is a program which adheres to the pinentry protocol. It always
provides the password located in /etc/mock-password.
2019-12-05 15:02:43 -06:00
Tim Byrne
f7485915ed
Update tests for gawk support
2019-12-04 22:18:55 -06:00
Tim Byrne
c1f779521c
Confirm LEGACY_WARNING_ISSUED is set appropriately
2019-12-04 17:36:43 -06:00
Tim Byrne
66a3969c8a
Add unit tests for reporting invalid alternates ( #183 )
2019-12-04 17:36:43 -06:00
Tim Byrne
59da359e63
Remove old-style alts from test data
2019-12-04 08:17:03 -06:00
Tim Byrne
6bf0852609
Use /etc/os-release if lsb_release is missing ( #175 )
2019-11-30 18:31:27 -06:00
Tim Byrne
24e6e81713
Test support for double-star globs
2019-11-26 16:24:36 -06:00
Tim Byrne
5634c09a8a
Refactor symlink code
...
Update variable names, favoring the terminology used by `ln`.
* source (original file containing data)
* target (the symlink file, pointing to source)
2019-11-25 08:24:46 -06:00
Tim Byrne
98392b9a9c
Add function relative_path
...
This function will create a path relative to another, without the use of
an external program like dirname.
2019-11-24 13:15:42 -06:00
Tim Byrne
f8d6d2b0e4
Change tests to expect relative links
2019-11-24 13:15:42 -06:00
Tim Byrne
c29834ed86
Add test for permission bug ( #174 )
2019-11-12 06:52:49 -06:00
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