Commit Graph

41 Commits

Author SHA1 Message Date
Victor Hugo Borja
9a79ac9526 user configurable pre-post command hooks
Suppose a `foo` plugin is installed and provides a `bar` executable.
The following hooks will be executed when set in `.asdfrc`:

```shell
post_asdf_install_foo = echo installed foo version ${1}
post_asdf_reshim_foo = echo reshimmed foo version ${1}

pre_foo_bar = echo about to execute command bar from foo with args: ${@}
post_foo_bar = echo just executed command bar from foo with args: ${@}
```
2019-01-19 13:32:07 -06:00
Victor Hugo Borja
9b27848d07 New shim metadata to allow many plugins with same executable names
Features

* New shim version meta-data allows shims to not depend on a particular plugin
  nor on its relative executable path (#431)
  Upgrading requires shim re-generation and should happen automatically
  by `asdf-exec`:
    `rm -rf ~/.asdf/shims/` followed by `asdf reshim`
* Added lots of tests for shim execution.
  We now make sure that shim execution obeys plugins hooks like
  `list-bin-paths` and `exec-path`.
* Shim exec is now performed by a new `bin/private/asdf-tool-exec` that might
  be faster for most common use case: (versions on local .tool-versions file)
  but fallbacks to slower `get_preset_version_for` which takes legacy formats
  into account.
* Shim exec recommends which plugins or versions to set when command is
  not found.

Fixed Bugs

* Allow many plugins to provide shims with same executable name (#431)
2019-01-19 13:22:12 -06:00
Diego Nogueira Teixeira
28c0576d17 Fix reshim to create shim only for executable files and not directories. 2018-09-18 10:38:22 -03:00
Jose Luis Salas
c86707c55f
Add config option to install plugins in $HOME/.asdf 2018-08-11 15:37:56 +02:00
Trevor Brown
1b44fa7549 Fix shellcheck warnings. 2018-06-16 15:26:02 -04:00
Trevor Brown
e8819d43a4 Address warnings reported by new version of shellcheck. 2017-12-27 09:54:00 -05:00
William Ashton
43fd8c978d Tell sed to create backup files, and the remove them
This seems like the easiest way forward, considering the incompatability between the LInux and MacOS versions of sed.
2017-10-27 10:27:27 -04:00
William Ashton
dc3865c9fd Prevent sed from creating -e backup files. Fixes #242 2017-10-26 15:58:45 -04:00
Jonathan Knapp
20b70bccc7
Remove shebangs from lib files and pass bash dialect to shellcheck 2017-10-01 11:34:35 -04:00
Victor Borja
e814d58da3 Shellcheck all commands 2017-09-04 12:04:56 -05:00
Jonathan Knapp
808a8d48b7
Fix many shellcheck issues; ignore a few others 2017-09-04 10:09:47 -04:00
Victor Borja
5398d8949c Fix sed invocations for OSX 2017-09-03 20:23:06 -05:00
Daniel Perez
5a270d4cb4 Add asdf-plugin-version metadata to shims
This adds `asdf-plugin-version` to all generated shims.
This metadata is used to remove the shim when necessary.
2017-07-27 01:26:38 +02:00
Robin Schneider
7c30e6f9d2
Fix typo: seperated → separated
Automated edit command: git ls-files -z "$(git rev-parse --show-toplevel)" | xargs --null -I '{}' find '{}' -type f -print0 | xargs --null sed --in-place --regexp-extended 's/seperated/separated/g;'
2017-02-20 19:44:44 +01:00
Victor Borja
6ddf1e5e49 Fix shim args again.
Broken here:

00bf082b31 (diff-774f80a035a812fafdd48ebc7c8b6af4R54)

but this time we have tests to notice:

https://travis-ci.org/asdf-vm/asdf/builds/184202823
2016-12-15 05:34:35 -06:00
Tadeu Andrade
6d78d4fd80 Reverting slash on quotes 2016-12-13 10:03:28 -03:00
mtatheonly
e04fe9ed54 Update reshim.sh
Removing unneeded slash from shim writing.
2016-12-12 18:54:52 -03:00
Victor Borja
7512d9abf4 Add metadata to shims
When a shim is created, add plugin metadata so we can later know which shims belong to which plugins, this will help aid with removing unused shims on uninstall. See #67

```
# asdf-plugin: ${plugin_name}”
```

Thanks to @duijf for the metadata proposal.
2016-12-10 12:17:50 -06:00
Laurens Duijvesteijn
337b335c4d Check if plugin exists before removing it (#77)
Check if plugin exists before removing it
2016-07-06 08:19:15 +09:00
Akash Manohar
ad0d365cf4 Executable check should use actual file path 2015-11-19 08:49:19 +05:30
Stratus3D
225c690893 Remove duplicate call to write_shim_script. 2015-11-13 11:36:25 -05:00
Trevor Brown
8e96be3243 Remove todo comment. 2015-11-05 06:43:12 -05:00
Trevor Brown
9bdc207ee2 Add check to ensure file is an executable in generate_shims_for_version function. 2015-11-05 06:35:53 -05:00
Martin Schürrer
aaa8abfd23 Don't spawn subshells, use exec 2015-10-01 19:31:53 +02:00
Akash Manohar J
681daec95a Check for custom shim templates in $plugin/shims 2015-06-07 00:30:55 +05:30
Akash Manohar J
1bfabd67fb Replace var names 2015-05-29 21:54:31 +05:30
Akash Manohar J
00fa189b6e Rename package_name var to plugin_name everywhere 2015-05-27 12:16:17 +05:30
Akash Manohar J
97bdbc01b1 Fix shim and reshim 2015-05-24 15:12:30 +05:30
Akash Manohar J
3217a1f99e Merge and resolve conflicts 2015-05-24 15:03:56 +05:30
Akash Manohar J
bcb4780b33 Add shim command 2015-05-24 15:02:38 +05:30
Akash Manohar J
1d9fe07a11 Adhere to new & stable plugin API 2015-05-22 10:47:44 +05:30
Akash Manohar J
0f1db84981 Remove last use of tag/commit 2015-05-22 10:19:39 +05:30
Akash Manohar J
2bb9fa036d Simplify tag/commit to ref 2015-05-22 10:17:27 +05:30
Akash Manohar J
0ffd6d9e79 Stick to bash for shims too 2015-05-20 12:22:46 +05:30
Akash Manohar J
d687a86ab6 Simplify vocabulary 2015-05-17 23:50:51 +05:30
Akash Manohar J
52ce0afcf4 default to bin dir if list-bin-paths is not found 2015-05-17 23:14:16 +05:30
Akash Manohar J
132971c290 Escape double quotes 2015-05-17 22:58:49 +05:30
Akash Manohar J
00edadd6d3 Fix shim generator 2015-05-17 19:08:05 +05:30
Akash Manohar J
256e6cb000 Improve reshim command 2015-05-17 19:02:47 +05:30
Akash Manohar J
78c2c9b3fc if [ condition ]; then 2015-05-17 16:17:45 +05:30
Akash Manohar J
44ef58def1 Move around commands dir 2015-05-17 14:01:55 +05:30