1
0
mirror of https://github.com/Tarrasch/zsh-autoenv.git synced 2024-11-12 20:20:59 +02:00
Commit Graph

97 Commits

Author SHA1 Message Date
Daniel Hahler
2c8cfbcea8
Handle setopt shwordsplit (#89)
This uses `emulate -L zsh` (as a more broad approach to `setopt
localtoptions noshwordsplit`, or quoting things) in the entry points to
zsh-autoenv.

Fixes https://github.com/Tarrasch/zsh-autoenv/issues/75
2017-12-16 01:09:41 +01:00
Daniel Hahler
0bb85014e6
Optimize _autoenv_stack_entered_contains (#88)
Only make `$env_file` absolute once.
2017-12-16 01:04:13 +01:00
Daniel Hahler
12ed110764 Optimize _autoenv_authorized_env_file
This uses Zsh directly, instead of calling grep potentially twice for a
missing entry.
2017-12-16 01:03:54 +01:00
Daniel Hahler
1d15e0d1a9 _autoenv_hash_pair: use sha1sum for v1 hashes
shasum was replaced by sha1sum before, and appears to have been added
back accidentally in dfb5648.
2017-12-16 01:03:54 +01:00
Daniel Hahler
51c7421f10
_autoenv_hash_pair: do not use a subshell (#81)
As a side-effect this should fix
https://github.com/Tarrasch/zsh-autoenv/issues/39 in case it was still
an issue after all.
2017-12-15 15:59:11 +01:00
Daniel Hahler
bba8f04258
minor: fix doc / improve debug logging (#80) 2017-12-14 01:18:44 +01:00
Daniel Hahler
d6bfdff968
Fix (auto)unstashing when being sourced from a subdir (#79)
Fixes https://github.com/Tarrasch/zsh-autoenv/issues/77.
2017-12-14 00:53:25 +01:00
Rob Speed
7e0d027b21 _autoenv_get_file_upwards: do not dereference symlinks (#73)
This prevents issues where autoenv scripts use $0. When a shell enters the directory holding the autoenv scripts, it works as expected with $0 being the path to the symlink. However, if the shell enters one of its child directories the path to the script is dereferenced, and $0 is instead the path to the symlink's target.

From `man 1 zshexpn`:

> A – Turn a file name into an absolute path as the 'a' modifier does, and then pass  the  result  through  the  realpath(3) library function to resolve symbolic links.

Note: Symlinks are dereferenced elsewhere for authorization, so that behavior is unchanged.
2017-11-02 02:40:45 +01:00
Daniel Hahler
2db6d69774 Merge pull request #71 from blueyed/minor
Minor code cleanup/optimization
2017-10-18 00:32:08 +02:00
Daniel Hahler
bdc6967fc9 Set varstash_dir for "leave" event (#72)
Fixes https://github.com/Tarrasch/zsh-autoenv/issues/45.
2017-10-18 00:31:43 +02:00
Daniel Hahler
bcfdd75382 _autoenv_source: grep for unstash also
Just for consistency.
2017-08-19 15:39:59 +02:00
Daniel Hahler
e0fc4bb58a Better fix for return value of _autoenv_source
Follow up to 8763a5b.
2017-08-19 14:50:20 +02:00
Daniel Hahler
4b1cae055d Minor code cleanup/optimization 2017-08-19 14:28:03 +02:00
Daniel Hahler
c3afdc151f Improve debug logging in _autoenv_chpwd_handler (#57) 2017-08-19 13:55:35 +02:00
Daniel Hahler
b0d5ff456f minor: doc; improve autostash check 2017-08-18 16:20:51 +02:00
Daniel Hahler
32598b5850 Minor cleanup 2017-08-18 15:27:32 +02:00
Daniel Hahler
0f92983d1e Add autoenv-edit function to edit current env files (#68) 2017-08-11 14:15:46 +02:00
Daniel Hahler
b90d2c4f80 _autoenv_get_file_upwards: handle relative paths
If `$look_from` is `.` the resulting file patch will be relative.
2017-08-11 10:27:20 +02:00
Daniel Hahler
738e6e965d AUTOENV_DEBUG=3 sets xtrace while sourcing; doc (#65) 2017-04-30 14:14:25 +02:00
Rob Speed
dfb5648505 Automatically upgrade v1 hashes (SHA-1) to v2 (cksum) (#55)
A new parameter is added to `_autoenv_hash_pair` to specify the version, defaulting to the latest (2). It outputs a `cksum`-based hash for version 2 and `shasum`-based for version 1.
Moves logic to check for an entry in `$AUTOENV_AUTH_FILE` into its own function (`_autoenv_authorized_pair`), as it may need to be called twice.
Modifies `_autoenv_authorized_env_file` to check for v1 entries when v2 fails.

Fixes #53. Alternative implementation to #54.
2017-01-10 12:07:39 +01:00
Daniel Hahler
398b6f4f54 Use cksum instead of sha1sum for checksums (#54)
This provides better performance, but requires you to re-authenticate all files.

Fixes https://github.com/Tarrasch/zsh-autoenv/issues/53.
2017-01-05 01:16:21 +01:00
Daniel Hahler
448ceefd3a _autoenv_hash_pair: use sha1sum (C) instead of shasum (Perl) (#52)
This improves performance.
2016-12-15 16:36:35 +07:00
Arash Rouhani
0ad53b6ee6 Better ~/.env_auth deprecation hint (#51)
Don't print the dot so it's easier to copy and paste.
2016-11-29 16:50:32 +01:00
Daniel Hahler
998c09addd Create path to non-existing auth file (#49)
This changes the tests to have the auth file in a non-existing subdir
always, as with `$HOME/.local/share` not being there already.

Fixes https://github.com/Tarrasch/zsh-autoenv/issues/48.
2016-06-16 01:45:25 +02:00
Daniel Hahler
ecf2b2961f Only source varstash lib if it's being used
I have noticed that `autostash` called an (accidentally)
defined/overwritten `stash` function.

While it's not possible to put this into a local scope, this will at
least make it less polluting by default (when autostashing is not used).

Additionally we could source it always (not just once), but then it
would only re-overwrite the function.

A better fix would be to prefix the functions explicitly, e.g.
`autoenv_autostash` etc.

Closes https://github.com/Tarrasch/zsh-autoenv/pull/42.
2016-04-28 20:44:05 +02:00
Daniel Hahler
f021750e89 _autoenv_ask_for_yes: handle/catch Ctrl-C and return 2016-03-06 20:27:15 +01:00
Daniel Hahler
8a80ba7f02 Quote assignments to pair/parent_file 2016-03-06 20:26:48 +01:00
Daniel Hahler
20046b46ba Add comment for "autoenv_debug: fix error with Zsh 5.0.5" 2015-11-18 19:28:37 +01:00
Daniel Hahler
1220d246b0 _autoenv_debug: fix error with Zsh 5.0.5
> _autoenv_debug:local:1: not valid in this context: handler:

Fixes https://github.com/Tarrasch/zsh-autoenv/issues/38.
2015-11-18 19:23:05 +01:00
Daniel Hahler
aee9baa418 Merge pull request #36 from blueyed/fix-api-vars-scope
Cleanup API/vars for enter/leave events
2015-10-10 22:35:41 +02:00
Daniel Hahler
eebdce22df Allow to limit autoenv_source_parent's upward recursion
This allows to use `autoenv_source_parent ..` to only look in the parent
directory.
2015-10-09 22:16:07 +02:00
Daniel Hahler
961190678e Cleanup API/vars for enter/leave events
The variables are local now, which makes them being handled correctly
when calling `autoenv_source_parent`.
Without this, a call to `autoenv_source_parent` overwrites the values in
the current scope.
2015-10-09 22:04:55 +02:00
Daniel Hahler
fadddf6502 Use shorter echo for newlines 2015-08-27 22:58:35 +02:00
Daniel Hahler
54b89914ff Use 'command cat'
Ref: https://github.com/Tarrasch/zsh-autoenv/pull/35#discussion_r38145031
2015-08-27 22:57:58 +02:00
Daniel Hahler
90d3b53505 Write _autoenv_check_authorized_env_file to stderr
stdout might be redirected, e.g. with "cd - >/dev/null", and this
message should appear in stderr probably anyway.

I've tried to add a test for this, by redirecting stdout in .zshenv, but
cram does not handle this well (and appears to redirect stderr to stdout
anyway).
2015-08-27 20:50:52 +02:00
Daniel Hahler
9a2660f939 Remove globals: _autoenv_source_dir, _autoenv_chpwd_prev_dir
The globals are not necessary and can cause problems with
AUTO_NAME_DIRS.

 - Use funcsourcetrace[1] instead of _autoenv_source_dir.
 - Use OLDPWD instead of _autoenv_chpwd_prev_dir.

Fixes #33.
2015-05-25 17:03:05 +02:00
Daniel Hahler
e68a914487 Change default values: .env => .autoenv.zsh etc
This changes the defaults:
 - AUTOENV_FILE_ENTER:   .env       => .autoenv.zsh
 - AUTOENV_FILE_LEAVE:   .env_leave => .autoenv_leave.zsh

`.env` is usually used only for key-value pairs for environment
settings, e.g. with foreman.  We do not want to interfere with this.

This also renames the setting/variable AUTOENV_ENV_FILENAME to
AUTOENV_AUTH_FILE, and uses the [XDG
spec](http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html#variables)
for the default location.

The new default location for the auth file will be
~/.local/share/autoenv_auth.

When the old setting is used, or the previous default exists, a warning
is given with instructions.

Fixes https://github.com/Tarrasch/zsh-autoenv/issues/31.
Closes https://github.com/Tarrasch/zsh-autoenv/pull/32.
2015-05-22 17:20:06 +02:00
Daniel Hahler
d6f37dbeb6 minor: doc for _autoenv_hash_pair 2015-05-09 18:25:32 +02:00
Arash Rouhani
928a945e99 Merge pull request #27 from blueyed/add-doc
Huge update of the README (finally)
2015-05-06 21:24:28 +02:00
Daniel Hahler
362c7fe00f Huge update of the README (finally) 2015-05-06 20:53:41 +02:00
Daniel Hahler
b0e23d29fe Change default for AUTOENV_FILE_LEAVE to .env_leave
This does not use a fake file extension (`.leave`) like with
`.env.leave`.
2015-05-06 20:28:23 +02:00
Daniel Hahler
470841ac3c Unset $autoenv_env_file when leaving
This allows to use $autoenv_env_file e.g. in your prompt to see what
.env is being used.
2015-04-24 17:36:41 +02:00
Daniel Hahler
d62fbffad3 Do not export AUTOENV_ENV_FILENAME, and use existing value 2015-04-24 17:28:09 +02:00
Daniel Hahler
e6e906e6b9 Fix _autoenv_get_file_mtime for zsh 4 (no pipefail option) 2015-04-23 19:55:21 +02:00
Daniel Hahler
fe3d479b08 minor: doc 2015-04-23 15:11:05 +02:00
Daniel Hahler
8763a5b627 Fix return value of _autoenv_source; use ': $(( .. ))'
`(( foo++ ))` returns an error in case $foo is not defined.
2015-04-23 14:39:38 +02:00
Daniel Hahler
9a010cbdf6 Do not reset the stack variables when (re)sourcing the plugin
This is meant to keep the current state when re-sourcing the shell
config (`. ~/.zshrc`).

Closes https://github.com/Tarrasch/zsh-autoenv/pull/24
2015-03-30 00:58:32 +02:00
Daniel Hahler
6fe08c3fde Improve zsh/zstat integration; also make it handle dirs 2015-01-25 19:22:52 +01:00
Daniel Hahler
e07a47f566 Merge branch 'allow-disable'
Closes: #20
2015-01-20 11:16:37 +01:00
Daniel Hahler
373e1b21fb Add support for $AUTOENV_DISABLED, which skips the chpwd hook 2015-01-20 11:16:22 +01:00