Commit Graph

133 Commits

Author SHA1 Message Date
Victor Hugo Borja
b8dc5f1604 Run shfmt on bash files 2019-11-29 10:15:38 -06:00
Victor Hugo Borja
2ea3d2017f asdf --version shows git-revision when asdf_dir is a git clone.
This will help people running on asdf master be able to report
issues and maintainers can know the precise git commit where the
error was reported.

See #589
2019-11-26 22:08:45 -06:00
Victor Borja
4279549530
Merge pull request #583 from android10/master
asdf_data_dir() returning incorrect path when running as root.
2019-11-25 12:23:17 -06:00
Trevor Brown
72e876b0ae Handle dashes in executable names properly 2019-10-24 12:05:44 -04:00
Fernando Cejas
ded3a41808 Simplify whether asdf is running with privileges. 2019-10-23 14:31:43 +02:00
Fernando Cejas
598503ef74 Fix constant expression. 2019-10-23 13:36:58 +02:00
Fernando Cejas
fc1c586ca6 Add a method to detect whether asdf runs with privileges. 2019-10-23 13:26:33 +02:00
Trevor Brown
edb5839239 Rename find_version to find_versions since it can return multiple versions 2019-10-22 19:03:05 -04:00
Fernando Cejas
c7c053e41e Fix ASDF_DATA_DIR not being set. 2019-10-22 16:45:56 +02:00
Fernando Cejas
a888e48bd2 Fix asdf data directory. 2019-10-22 15:01:55 +02:00
Trevor Brown
20522bb2e2 Correct bug in path logic that added current directory to PATH 2019-08-14 20:21:57 -04:00
Trevor Brown
01cd8d6dad Address shellcheck warning and use shell globbing instead of ls 2019-05-17 21:12:41 -04:00
Paul Swartz
4e9d04ccaa fix: also fix bug with cleaning up old versions
It had a similiar issue with removing plugins based on the prefix and not the
full version string.
2019-05-17 14:34:44 -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
Daniel Perez
450660018c Revert to using exec when running a shim 2019-03-26 17:36:08 +00:00
Daniel Perez
81709db18a Fix shim_plugin_version 2019-03-23 21:21:55 +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
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
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
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
Trevor Brown
41e2059a3e Fix shellcheck warnings on OSX 2018-12-20 17:25:30 -05:00
Trevor Brown
f88f140ea8
Make get_executable_path use ASDF_DATA_DIR
Fixes #402
2018-11-26 08:50:11 -05:00
Trevor Brown
d6b01e35ec Simplify resolve_symlink function. 2018-10-07 21:47:57 -04:00
Trevor Brown
e0cdec39f9 Address shellcheck errors in resolve_symlink function. 2018-10-07 21:47:57 -04:00
Trevor Brown
4c4590c6e6 Update resolve_symlink function so it always returns absolute paths. 2018-10-07 21:47:57 -04:00
Jose Luis Salas
5acef7c9bf
Remove get_install_type and fix indentation 2018-09-27 22:18:36 +02:00
Jose Luis Salas
d1782f456e
Retrieve asdf_data_dir from environment variable 2018-09-16 18:39:21 +02:00
Jose Luis Salas
c86707c55f
Add config option to install plugins in $HOME/.asdf 2018-08-11 15:37:56 +02:00
Trevor Brown
bcdc5e0ba7 Switch to single quotes for sed regex. 2018-06-17 19:31:36 -04:00
Trevor Brown
001cd6022f Ignore shellcheck warning. 2018-06-16 23:07:17 -04:00
Trevor Brown
631ad8a005 Resolve symlink paths before altering .tool-version files. 2018-06-16 22:59:37 -04:00
Trevor Brown
1b44fa7549 Fix shellcheck warnings. 2018-06-16 15:26:02 -04:00
Brennan Fee
4cb89b152c
Fix another spot for plugin-name env var lookup
After fixing #319 I wondered if there were any other spots where the same/similar bug existed.  I found one other location at line 126 in utils.sh.
2018-05-31 10:46:04 -05:00
Brennan Fee
67bc9539d1 Fix for #319
Fixed #319 by forcing all dashes to underscores in the plugin name.
Shell variables don't allow dash.
2018-05-30 20:02:23 -05:00
Melissa Xie
f79dda865a Include plugin name in error message if plugin doesn't exist
Previously, if we ran a command like `asdf install` and we encountered a
plugin that didn't exist, asdf produces an error saying "No such
plugin". Without knowing which plugin it could be referring too, we'd
have to manually go through each plugin in `.tool-versions` to find the
culprit.

With this commit, we'll now also include the plugin name as part of the
messaging for easier debugging.
2018-04-30 12:49:40 -04:00
james.bunch
d62fa098c1 AZDF -> ASDF environment variable name spelling
change all instances of `AZDF` to read `ASDF` instead, to bring the
variable names in line with the project name
2018-02-27 11:56:04 -08:00
AJ Foster
eb5e5b780c Refactor "no version set" message to utilities 2018-02-25 18:33:42 -05:00
AJ Foster
24a7190505 Specify when a version is set via environment variable 2018-02-25 01:11:16 -05:00
Trevor Brown
ed3a029e86
Merge branch 'master' into env-config-file-location 2018-02-11 17:31:17 -05:00