Commit Graph

318 Commits

Author SHA1 Message Date
Trevor Brown
a2fe8413fc Add strict mode to lib/commands/current.sh 2019-05-12 08:18:58 -04:00
Trevor Brown
b74cdfb826 Add strict mode to lib/commands/version_commands.sh 2019-05-12 08:18:58 -04:00
Trevor Brown
3893f59ced Add strict mode to lib/commands/update.sh 2019-05-12 08:18:58 -04:00
Trevor Brown
3b48cbf42f Add Bash strict mode to utils.sh 2019-05-12 08:18:58 -04:00
Daniel Perez
b8ee616318 Fix current when .tool-versions contains comments 2019-03-31 20:39:36 +01:00
Daniel Perez
f2674374b0
Merge pull request #502 from asdf-vm/use-exec
Revert to using exec when running a shim
2019-03-31 20:15:46 +01:00
Trevor Brown
bc3f4fe66a
Address shellcheck warning 2019-03-27 09:06:18 -04:00
Trevor Brown
603665ebda Update code that removes comments and trailing whitespace so it works on OSX 2019-03-27 08:50:15 -04:00
Trevor Brown
28cf1a74b9 Create function for removing comments from .tool-versions files 2019-03-27 08:50:15 -04:00
Trevor Brown
1a4a9435f3 Make install command ignore comments 2019-03-27 08:50:15 -04:00
Daniel Perez
450660018c Revert to using exec when running a shim 2019-03-26 17:36:08 +00:00
Trevor Brown
bc1d9cb2c2
Merge pull request #497 from asdf-vm/rc-releases
Add support for RC releases
2019-03-25 08:19:30 -04:00
Trevor Brown
85057b6969 Add support for RC versions to asdf update command 2019-03-24 18:24:19 -04:00
Daniel Perez
81709db18a Fix shim_plugin_version 2019-03-23 21:21:55 +00:00
Trevor Brown
02f24df5e8 Improve output of where command when system version is set 2019-03-23 10:45:50 -04:00
Daniel Perez
1d43a052fe
Merge pull request #480 from jonmast/add-shell-command
Add "shell" subcommand for setting versions in shell session
2019-03-20 19:02:59 +00:00
Daniel Perez
0f0bbef50d Fix select version when multiple versions available
With the previous version, the following case would fail.
It would use python 2.7.15 when running pip
instead of version 3.7.2.

Shim for `pip`

```bash
exec /home/daniel/.asdf/bin/asdf exec "pip" "$@"
```

`.tool-versions`:

```
python 3.7.2 2.7.15 system
```
2019-03-20 17:20:01 +00:00
Daniel Perez
c06799cfca Fix legacy version and multi versions handling 2019-03-16 19:45:37 +00:00
Jonathan Mast
9116e8453d
Add "shell" subcommand for setting versions in shell session
Add a "shell" command similar to the existing "global" and "local"
commands, which sets the version in an environment variable instead of
writing it to a file. This was inspired by the similar functionality in
rbenv.

It works by adding a wrapper function for the asdf command. It forwards
to a "sh-shell" command that returns the exports as shell code which is
then evaled by the wrapper. This is a little gross, but we need to run
the code in the shell context in order to set variables.

Resolves #378
2019-03-09 13:19:33 -05:00
Trevor Brown
ba42343f92
Merge pull request #474 from asdf-vm/update-fix
Use asdf_dir instead of $ASDF_DIR
2019-03-01 15:09:46 -05:00
Trevor Brown
a60b28e716 Use asdf_dir instead of $ASDF_DIR 2019-02-28 22:55:50 -05:00
Victor Hugo Borja
cdd8dc105a fix shellchecks 2019-01-23 22:27:31 -06:00
Victor Hugo Borja
4b40e80776 Test that command being executed can see other tools shims on path 2019-01-23 22:18:18 -06:00
Victor Hugo Borja
8ccfda26b8 Prevent warning about global ASDF_DIR being undefined. 2019-01-21 22:45:32 -06:00
Victor Hugo Borja
0260c442cc Test to ensure asdf exec and asdf env use plugin custom exec-env 2019-01-21 01:33:52 -06:00
Victor Hugo Borja
ab59e5618f Move common functionality to utils.sh
- Make shim-exec, shim-env, and which use the same logic to look for commands
- Make sure shim-exec and which use a plugin exec-path hook as documented
  (the hook takes a relative path to the executable and returns also
   a relative path, possibly modified)
- Fix shellchecks
2019-01-20 14:02:22 -06:00
Victor Hugo Borja
9cac0ac50a Faster exec times. Load commands only when nedded.
When testing, use `run asdf` to actually test the command
as the user would invoke it, so that we might catch possible
errors on `bin/asdf`.
2019-01-20 02:13:20 -06:00
Victor Hugo Borja
8927a4a09f Add asdf env command 2019-01-19 20:59:27 -06:00
Victor Hugo Borja
89775c8d88 fix lint on shim-exec 2019-01-19 20:25:41 -06:00
Victor Hugo Borja
e51f778b61 Move bin/private/asdf-tool-exec to be asdf exec command
This way the code for executing shims can also be invoked via
`asdf exec <tool> [args..]` and can be linted.
2019-01-19 20:02:14 -06:00
Victor Hugo Borja
a46eaf3b4a Merge remote-tracking branch 'origin/shim-versions-command' into 0.6.4-dev 2019-01-19 13:56:56 -06:00
Victor Hugo Borja
9420ca1aec Add hooks for plugin uninstall 2019-01-19 13:48:21 -06:00
Victor Hugo Borja
dcc3727cab Add pre-install and pre-reshim hooks 2019-01-19 13:32:07 -06:00
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
7fda291df0 Add asdf shim-versions command (#380)
For example `asdf shim-versions npm` will list the plugins and their
versions on which the `npm` command is available.

Based on #432
2019-01-19 13:31:26 -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
Trevor Brown
8f242e7ec2 Address shellcheck warnings 2019-01-05 11:10:59 -05:00
Trevor Brown
c37307a2cc Create get_custom_executable_path function to hold the custom exec path logic 2019-01-05 10:23:41 -05:00
Raphx
ec6662d4c0
Continue list even when version is not found
Previous implementation exits abruptly when no version is installed for
a plugin. This prevented the list command from listing the versions for
some other plugins.

This commit allows list command to continue executing even when no
version is installed for some plugins.

Example, plugin a with 1.0, b with none, and c with 2.0.

Previous implementation:

```
$ asdf list

a
  1.0
b
No versions installed
```

After commit changes:

```
$ asdf list

a
  1.0
b
No versions installed
c
  2.0
```
2018-12-28 09:21:43 +08:00
Trevor Brown
fcf5f3653c
Merge pull request #416 from asdf-vm/fix-shellcheck-warnings
Fix shellcheck warnings on OSX
2018-12-21 17:34:37 -05:00
Trevor Brown
41e2059a3e Fix shellcheck warnings on OSX 2018-12-20 17:25:30 -05:00
Trevor Brown
7ca88746a8
Merge pull request #411 from rliebz/update
Fix issues with update command
2018-12-02 14:12:23 -05:00
Robert Liebowitz
321e3b0e46 Exit 1 for failed update 2018-12-01 21:17:27 -05:00
Robert Liebowitz
697772fe8c Fix git dir for update and add error handling 2018-12-01 21:07:44 -05:00
Daniel Perez
2eae89c432 Fix which for when "system" version is present 2018-11-29 00:31:31 +00:00
Daniel Perez
11882c1151
Merge pull request #382 from fcrespo82/better-which-command
Updated which command.
2018-11-29 00:18:51 +00:00
Trevor Brown
f88f140ea8
Make get_executable_path use ASDF_DATA_DIR
Fixes #402
2018-11-26 08:50:11 -05:00
Fernando Crespo
0871b7fe8f Change maxdepth position to fix error in ubuntu trusty 2018-11-21 14:57:05 -02:00
Trevor Brown
22b709f94e
Merge pull request #403 from burnettk/support-tool-versions-without-newline
support .tool-versions content even if it does not end in a newline
2018-11-20 09:18:41 -05:00
Kevin Burnett
f1b2c59b1d support .tool-versions if it does not end in newline 2018-11-15 21:47:48 -05:00