Victor Hugo Borja
8927a4a09f
Add asdf env
command
2019-01-19 20:59:27 -06:00
Victor Hugo Borja
6da747b6ce
Test that asdf exec
works even if asdf shims are not in PATH.
2019-01-19 20:09:53 -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
8bcf8caba4
Write test for the exec-path functionality in the which command
2019-01-05 10:54:02 -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
54fc0f43dd
Add tests for versions set by environment variables
...
Fixes #327
2018-12-22 15:11:28 -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
Robert Liebowitz
76c3d426c1
Fix update test setup
...
Rather than using the project's current `.git` directory, create a new
one. This avoids issues with submodules and potentially other problems.
2018-12-01 21:05:58 -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
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
Fernando Crespo
03394831a8
Merge remote-tracking branch 'upstream/master' into better-which-command
2018-11-12 15:35:19 -02:00
Daniel Perez
18587d4d6f
Fix current behavior when multiple versions of a plugin are set
2018-11-10 11:32:02 +00:00
Trevor Brown
359191104b
Merge pull request #389 from mig4/where-default-version-to-current
...
Make where command default to current version
2018-11-03 10:07:44 -04:00
mig4
a58e9e3c17
Make where command default to current version
...
Allow not specifying the version on command line in which case fall back
to looking it up.
Also add tests for the `where` command.
2018-10-28 17:47:21 +00:00
mig4
f994b07a2c
Optimise listing all plugins
...
When checking if a plugin is installed (to display a flag) it is not
necessary to loop through all installed plugins, since we already have
a name we can check directly.
Also expand test case to test this code path too.
2018-10-27 20:05:02 +01:00
Fernando Crespo
46e5f7427f
Updated which command.
...
Should fix #205
2018-10-21 00:47:13 -03:00
Trevor Brown
60e67c4f5b
Add primitive tests for plugin_test_command.
2018-10-19 22:44:26 -04:00
Trevor Brown
fc078c5e72
Implement 'asdf local -p'.
2018-10-19 20:41:49 -04:00
Trevor Brown
e8905b42bc
Add tests for 'asdf local -p' command.
2018-10-19 20:41:49 -04:00
Trevor Brown
f708e3c15f
Merge pull request #371 from phunehehe/version-set-by
...
commands/current: add space before parenthesis
2018-10-10 18:21:46 -04:00
Hoang Xuan Phu
1330083229
commands/current: add space before parenthesis
...
It seems to have been lost in 88d47bbd69
.
Probably by accident?
I also pulled the literal bits into the format string. It looks more
readable to me that way. I'm happy to remove that if it's not desired.
2018-10-10 17:28:23 -04:00
Trevor Brown
2bc679084f
Add test for the resolve_symlink function.
2018-10-07 21:47:57 -04:00
Trevor Brown
39687b5a94
Add test for not installing system versions.
2018-10-07 14:31:30 -04:00
Trevor Brown
af5393d563
Move current_command test into current_command.bats.
2018-10-07 14:22:31 -04:00
Jose Luis Salas
448d3215d8
Fix asdf current behaviour
...
Closes : #353
2018-10-04 21:00:29 +02:00
Trevor Brown
266e3cffa5
Merge pull request #360 from teixeiradiego/reshim-fix
...
Fix reshim to generate shims only for executable files and not directories.
2018-09-19 08:16:33 -04:00
Diego Nogueira Teixeira
20bb61963d
Implemented tests for shim generation only for executable files, not directories.
2018-09-19 09:00:11 -03:00
Matt Wean
c468ae7d6a
Add another test for the ASDF_DATA_DIR functionality.
2018-09-18 20:21:46 -04: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
c7fb348ffd
Add tests for symlink preservation.
2018-06-16 22:48:16 -04:00
Trevor Brown
4a4f453a93
Add readlink to list of banned commands.
2018-06-16 20:19:33 -04:00
Trevor Brown
c1ce9de4d4
Merge pull request #331 from brennanfee/fix-330-asdf-list
...
Fix for #330 - "asdf list" spacing
2018-06-16 15:30:35 -04:00
Trevor Brown
1b44fa7549
Fix shellcheck warnings.
2018-06-16 15:26:02 -04:00
Brennan Fee
ba1b181b58
Fixing unit tests for 'asdf list'
...
Now that we put spacing in front of the version #'s the tests need to
reflect that.
2018-06-01 10:15:40 -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
hlhr
e1a4ff244f
list command without parameter lists all packages with versions
2018-04-16 18:37:22 -04:00
Edoardo Tenani
e710959d1b
adapt test to new error code
2018-04-09 20:35:51 +02: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
Trevor Brown
123c1404c1
Merge pull request #298 from aj-foster/fix-plugin-list-all-test
...
Fix `plugin-list-all` test
2018-02-26 09:17:37 -05:00
AJ Foster
210598239b
Fix plugin-list-all
test file name and update it for current output
2018-02-25 19:16:35 -05:00
AJ Foster
a195da28c2
Promote which
version check from subshell to enable error emission
2018-02-25 18:34:39 -05:00
AJ Foster
eb5e5b780c
Refactor "no version set" message to utilities
2018-02-25 18:33:42 -05:00
AJ Foster
c2fb6a3140
Escape backticks in command suggestion
2018-02-25 00:50:46 -05:00
AJ Foster
f15a0c9de3
Suggest action when no version is set
2018-02-25 00:40:26 -05:00
Trevor Brown
4efa8a9707
Fix failing test for ASDF_DEFAULT_TOOL_VERSIONS_FILENAME environment variable.
2018-02-12 18:41:27 -05:00
Trevor Brown
ed3a029e86
Merge branch 'master' into env-config-file-location
2018-02-11 17:31:17 -05:00
Trevor Brown
8abcceb8c0
Add test for tool name matching.
2018-02-11 17:28:29 -05:00
jthegedus
f99bdc75c0
add --urls
flag for asdf list-plugins
...
Fixed tests due to use of printf
2018-01-14 19:38:00 +11:00
jthegedus
4d2870dcd5
update test accounting for URL output
2018-01-14 15:50:49 +11:00
Trevor Brown
8794210b8e
Add 'eval' to list of banned commands.
2017-11-16 22:43:52 -05:00
Trevor Brown
e91e453580
Merge pull request #251 from asdf-vm/banned-commands
...
Add test that greps source code for banned commands.
2017-10-28 11:02:03 -04:00
Trevor Brown
7601afd9b9
Add test that greps source code for banned commands.
2017-10-28 10:54:10 -04:00
William Ashton
dc3865c9fd
Prevent sed from creating -e backup files. Fixes #242
2017-10-26 15:58:45 -04:00
Victor Borja
db54c6bad1
test reshim with install from tool-versions
2017-10-25 14:19:03 -05:00
Victor Borja
97312e2f26
Test reshim a second time
2017-10-25 14:14:19 -05:00
Victor Borja
7a15a88493
Test shims are not duplicated
2017-10-25 14:05:59 -05:00
DustinChaloupka
05a7446619
Add installing from a parent directory's .tool-versions
2017-10-10 12:02:42 -05:00
Jonathan Knapp
85550c8c0c
Remove extra, unnecessary quoting
2017-10-02 09:51:07 -04:00
Hugo Peixoto
15e59686c4
Add support for $ASDF_DEFAULT_TOOL_VERSIONS_FILENAME
...
Instead of just looking in $HOME/.tool-versions, allow the default
tool-versions file location to be specified through the variable
$ASDF_TOOL_VERSIONS.
2017-09-25 14:26:14 +01:00
Jonathan Knapp
808a8d48b7
Fix many shellcheck issues; ignore a few others
2017-09-04 10:09:47 -04:00
Victor Borja
e74c472829
Test current command with no installed version
2017-09-03 22:20:35 -05:00
vic
779e757b56
Merge pull request #212 from asdf-vm/asdf-plugin-version
...
Add asdf-plugin-version metadata to shims
2017-09-03 20:26:27 -05:00
Victor Borja
5398d8949c
Fix sed invocations for OSX
2017-09-03 20:23:06 -05:00
Victor Borja
f23b448c0c
Merge remote-tracking branch 'origin/master' into asdf-plugin-version
2017-09-03 20:01:27 -05:00
vic
28d7921777
Merge pull request #221 from asdf-vm/plugin-list-all
...
Add plugin-list-all command
2017-09-03 20:00:02 -05:00
Victor Borja
e75cc3a7a2
Add a test for #224
...
Allow spaces in .tool_versions file path
See #202 , #224
2017-09-03 19:53:01 -05:00
Daniel Perez
b9fae70c0d
Add plugin-list-all command
2017-08-25 11:29:23 +09:00
Daniel Perez
8af4b3377c
List all installed plugins when no argument is passed to current
2017-08-19 13:56:28 +09:00
Victor Hugo Borja
242d132afb
Find correct installation path for ref: versions
...
Noticed we had some duplicated logic for finding the
plugins installation path. This caused the bug described
by #213 where the installation command and the find_executable_path
were using different paths.
Fixes #213
2017-07-29 12:47:21 -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
Daniel Perez
78fbbaf584
Merge pull request #183 from doughsay/master
...
Use a git repository for installing plugins.
2017-07-26 18:49:15 +02:00
Chris Dosé
23f767c624
Add test for bad plugin name case.
2017-07-25 17:03:30 -07:00
Chris Dosé
a4fed4e4cd
Add simple test for plugin-add command.
2017-07-23 09:34:58 -07:00
Fernando
1e9166e9bc
Merge branch 'master' into which_command
2017-05-15 15:40:42 -03:00
Trevor Brown
564b9ed517
Fix tests that were failing due to improved error messages.
2017-03-25 15:16:58 -04:00
Trevor Brown
5899d47d75
Fix tests for update command.
2017-03-17 22:24:34 -04:00
Daniel Perez
23f92987c0
Start adding tests for system version
2017-03-17 22:00:38 -04:00
Trevor Brown
2ca517d8c1
Add tests for the update command. Use sed instead of tail -r to get the
...
latest tag from the list of sorted tags.
The setup code for these tests isn't ideal. It would be nice not to have
to worry about the remote. Without the 'origin' remote set the Travis
build would fail though.
2017-03-17 21:19:46 -04:00
Fernando Crespo
97c0fc44e2
Add tests for which command
2017-03-16 00:57:15 -03:00
Victor Hugo Borja
873dc5eb3e
Merge pull request #110 from vic/get_version_from_env
...
Get version from env if ASDF_${TOOL}_VERSION is defined.
2017-01-19 11:27:25 -06:00
Victor Hugo Borja
8709d197f1
Merge pull request #137 from vic/set-path-version
...
Allow `asdf local` and `asdf global` to take path: versions
2017-01-19 11:27:06 -06:00
Victor Borja
85a37ca9a5
Add couple of tests
2016-12-23 11:11:47 -06:00
Victor Borja
716d8a93cd
Allow asdf local
and asdf global
to take path: versions
...
When given a path: version, just check that the directory
actually exists.
2016-12-19 00:25:29 -06:00
Stratus3D
7c28074423
Add a helpful error message to the install command to warn users when they don't specify a version to install.
2016-12-18 12:52:23 -05:00
Trevor Brown
127f926391
Merge pull request #123 from vic/shims-remove
...
Shims remove on latest version uninstall (depends on #122 ).
2016-12-16 15:47:24 -07:00
Victor Borja
f4bc8b58ff
Merge remote-tracking branch 'origin/master' into get_version_from_env
2016-12-15 06:28:01 -06:00
Victor Borja
a1bc06fb82
Bugfix: ref:
and path:
versions are not read correctly.
...
Before this patch, with a `.tool-versions` file like:
```
lfe ref:master
```
`get_preset_version_for` would return `ref` instead of `ref:master`.
Same was happening for `path:` versions. Actually there was PR #95
on which I based my changes but instead of using space as delimiter
I went for using `|` which would be a lot more weird if present as
part of a file path, this also allows to specify paths which have
spaces which are much more frequent.
Closes #94 #95
2016-12-15 06:12:09 -06:00
Victor Borja
a98185b16a
Get version from env if ASDF_${TOOL}_VERSION is defined.
...
For example if asdf finds that the `ASDF_FOO_VERSION` is
defined in the current environment it will override the
version of `foo` from the `.tool-version` file.
Closes #49
2016-12-15 06:10:25 -06:00
Victor Borja
d1f0b64c2f
Remove shims on uninstall or plugin-remove
...
- Remove plugin shims when last version is uninstalled.
- Remove shims on plugin-remove
When the latest version of a tool is uninstalled,
Remove the plugin shims (marked with metadata at #122 )
Also found lots of missing tests and added them.
Closes #67
2016-12-15 06:05:23 -06:00
Victor Borja
eecd1f36d1
Test produced shims by actually running them.
...
Test using a dummy executable.
Closes #127
2016-12-13 13:32:49 -06:00
Victor Borja
1c99863e56
Add documentation on metadata for shim authors
2016-12-10 14:05:23 -06:00
Victor Borja
c7d21bfb2c
Test shims executable
2016-12-10 12:22:36 -06: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
Victor Borja
26532e7914
Determine version from global setting when project is outside home.
...
Without this patch, asft was not able to determine the tool version
for a project located outside the user's HOME directory.
```
/work/project/
/home/me/.tool-versions
```
This changeset lets asdf find the global version stored at
$HOME/.tool-versions when the directory traversal from
the project dir was not able to find a suitable version.
2016-10-29 06:08:54 -05:00
Stratus3D
20ef5321e1
Update the install_command function so it works when invoked in directory whose name contains whitespace.
2016-10-25 21:45:17 -04:00
Stratus3D
8bc937689c
Add test for the install command in a directory name containing whitespace.
2016-10-25 18:11:36 -04:00
Daniel Perez
95bde8e86f
Fix local and global commands to accept multiple versions
2016-08-30 19:13:10 -04:00
Stratus3D
181b5a769b
Add test for 'asdf local' in a directory with a name containing whitespace.
2016-08-30 19:13:10 -04:00
Kevin Rockwood
d505c0ee71
Return both version and path from find_version
...
This allows the current command to print the setting file.
2016-08-30 09:21:26 +09:00
Kevin Rockwood
cec4e9a737
Combine search and parse operations
...
We need to search and parse simultaneously in case the tool-versions
file doesn't contain a setter line for the plugin.
2016-08-28 13:41:37 +09:00
Kevin Rockwood
4d75ddd50b
Update current command with new util functions
...
current will now print paths to legacy files and .tool-version files
2016-08-14 09:10:24 +09:00
Kevin Rockwood
c6d814e247
Unify .tool-versions and legacy file search
2016-08-14 09:10:24 +09:00
Kevin Rockwood
16f3fa9f03
Use dummy plugin for utils test
2016-08-14 09:10:24 +09:00
Kevin Rockwood
7517aa3abc
Remove getter feature on local and global commands
...
This simplifies the `local` and `global` commands. `asdf current` should
be sufficient for getting the current version.
closes #80
2016-07-25 09:44:53 +09:00
Kevin Rockwood
0ce18100c5
Use dummy plugin in version_commands test
...
This adds a helper to install dummy versions. Hopefully it makes the
test setup a little easier to reason about.
2016-07-25 09:40:52 +09:00
Kevin Rockwood
ca1273e7d4
Rename which to current ( #79 )
...
* Rename `asdf which` -> `asdf current`
* Output `set by $path` with current command
* Use dummy plugin in current_command test
* Hide "set by" message if derived from legacy file
2016-07-25 00:47:17 +09: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
Daniel Perez
3af5d21067
Set ASDF_CONCURRENCY when installing
2016-07-01 16:42:59 +09:00
Daniel Perez
61e014a2d6
Fix local command bug.
2016-05-14 11:11:16 +09:00
Daniel Perez
b0513a6da0
Fix local command to support legacy files.
2016-05-03 00:27:52 +09:00
Daniel Perez
784d7e9f34
Add support for local and global commands.
2016-04-25 02:13:09 +09:00
Daniel Perez
d4ee3aa999
Add support for config file.
2016-04-24 22:39:24 +09:00