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

123 Commits

Author SHA1 Message Date
Tim Byrne
3ba17f41fd Fix a known bug with hidden private files 2019-10-02 15:16:10 -05:00
Tim Byrne
cfda485b34 Implement future alternate processing 2019-10-02 15:16:02 -05:00
Tim Byrne
f3ae31f1c2 Separate alternate linking code from other operations 2019-09-27 08:40:32 -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
289b8e0c6c Remove unnecessary continuation backslashes 2019-09-27 08:40:31 -05:00
Tim Byrne
cec8778578 Align continuation backslashes 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
f0ad40376d Create YADM_HOOKS variable for hooks dir 2019-08-06 08:19:01 -05:00
Tim Byrne
a399c35e4e Add quoting 2019-07-29 08:00:09 -05:00
Daniel Wagenknecht
b404a87a89 Replace direkt calls to git with $GIT_PROGRAM
Some calls to git ignored the yadm.gpg-program configuration option
and called the first git found in $PATH instead. Make them adhere to
the configured git program by replacing the call with $GIT_PROGRAM.
2019-07-16 21:45:14 +02:00
Tim Byrne
4613c1d0c4 Merge pull request #114 from bb010g/patch-1 2019-04-12 07:57:35 -05:00
Tim Byrne
d245f633bf Remove invalid linked alternates (#65) 2019-04-10 09:23:34 -05:00
Tim Byrne
a2cc970dd6 Remove unnecessary Git invocations
`git ls-files` was being called multiple times during the processing of
alternates. This is now run once, and kept in an array.
2019-04-09 07:53:27 -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
0c6be5e398 Fix bug with alternate linked directories
Previously the tracked files were sorted, and then the files and their
parent directories were considered for possible alternates. Depending on
the length of directories and names of files, inconsistencies would
occur because the directory separator (/) would be part of the sorting.

To fix this, a unique list of tracked files and their parent directories
are sorted into a single list which is processed.
2019-04-05 08:58:30 -05:00
Tim Byrne
2aa1710214 Remove superfluous ; in comments 2019-03-24 17:22:11 -05:00
Tim Byrne
58edf313aa Process .yadm/encrypt in sorted order 2019-03-24 17:05:11 -05:00
Tim Byrne
402b57880d Update GPLv3 LICENSE information
This does NOT change the licensing.
2019-03-14 18:25:02 -05:00
Brayden Banks
0b9f537909 Allow for more complex Jinja templates
By calling envtpl with a filename, Jinja can perform includes, which is useful for more general machine configuration.
2018-06-11 19:31:10 -07:00
Tim Byrne
09a018ea5a Release 1.12.0
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`
2017-10-24 22:12:23 -05:00
Thomas Luzat
ac2aed9ab4 Indentation: Convert tab to space 2017-10-09 15:21:32 +02:00
Tim Byrne
d411db9f6f Consolidate cd to YADM_WORK 2017-09-22 12:30:24 -05:00
Tim Byrne
c24906ec10 Handle exclusions in .yadm/encrypt (#86) 2017-09-21 14:21:23 -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
57866714c4 Replace echo with printf (#87) 2017-09-15 18:35:41 -05:00
Tim Byrne
abf6cd1c4c Merge pull request #81 from japm48/patch-1
Add support for directories in .yadm/encrypt
2017-09-04 13:22:21 -05:00
Tim Byrne
5d4f3aac5b Release 1.11.1
Update version number and update documentation

* Create private dirs prior to merge (#74)
2017-08-23 07:28:35 -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
japm48
8e3a5dbf47 Fix for issue #81
See details in #81
2017-08-20 06:55:59 +02:00
Tim Byrne
4b5b6c44d3 Release 1.11.0
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)
2017-07-09 23:07:50 -05:00
Tim Byrne
0168bcfb5e Query worktree directly from repo 2017-07-05 16:32:54 -05:00
Tim Byrne
61270c8277 Prevent command from running if "pre" hook fails 2017-07-05 08:12:29 -05:00
Tim Byrne
f73c873681 Expose some internal data to all hooks
* Command run by yadm
* Full commandline arguments
* Repo directory
* Worktree
* Exit status (for post hooks)
2017-07-05 08:12:29 -05:00
Tim Byrne
35743e3711 Tie "post" hooks to yadm exits
There are many cases where yadm may exit early (particularly when
encountering an error).
2017-07-03 16:25:23 -05:00
Tim Byrne
880964e2b2 Some initial tweaks to hooks
* No not require `.sh` extension. Hooks can be written in any language.
* Use `[` for the `-x` test
* Clean up debug message and formatting
2017-07-03 16:25:03 -05:00
Tim Byrne
df21cd2cb8 Merge pull request #70 from cweagans/hooks
Dropping changes to `yadm.md` and `CONTRIBUTORS`. These are built
programmatically during releases.
2017-07-03 16:24:13 -05:00
Tim Byrne
5293db986a Support YADM_DISTRO in Jinja templates (#68) 2017-07-03 16:21:27 -05:00
Cameron Eagans
41409631a1 Add script hooks 2017-06-22 17:32:16 -06: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
68937f3cad Release 1.10.0
Update version number and update documentation

* Fix `COMP_WORDS bad array subscript` bug (#64)
* Transition to semantic versioning
2017-05-10 17:46:37 -05:00
Tim Byrne
246eab8b52 Release 1.09
Update version number and update documentation

* Add Bash completion script (#60)
* Support WSL detection (#61)
* Add introspect command (used by completion)
2017-05-04 07:22:48 -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
df4652d6de Release 1.08
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)
2017-04-03 07:09:32 -05:00
Tim Byrne
9824de5410 Change template indicator to ##yadm.j2 2017-03-31 16:42:51 -05:00
Tim Byrne
588bc6eafe Support local.hostname properly (#59) 2017-03-31 12:43:32 -05:00
Tim Byrne
00133032ef Add minor improvements to template processing
* 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
2017-03-30 23:51:23 -05:00