Bruno Roque
824550ed20
feat: upgrade elvish to 0.17.0 ( #1159 )
...
* feat: upgrade elvish to 0.17.0
* Remove || and fix array slice
* Update elvish config path
* Tests use new path
* Escape $ in bats
* Fix legacy assignment in test
2022-02-11 17:19:55 -05:00
David le Blanc
b2b71e6402
Added test for handling config file values containing "=" in their text
2022-01-27 11:20:08 -05:00
Joe Horsnell
b7dd291c98
fix: Prevent unbound variable error with nounset in asdf.sh ( #1158 )
...
`asdf` [v0.9.0][1] included a [bug fix][2] to not override an existing ASDF_DIR.
However, if `ASDF_DIR` is not set at all, then this causes an error when using bash `set -u`, or
`set -o nounset` - see [here][3] for additional info.
[1]: https://github.com/asdf-vm/asdf/releases/tag/v0.9.0
[2]: https://github.com/asdf-vm/asdf/pull/1008
[3]: https://mywiki.wooledge.org/BashFAQ/112
2022-01-19 17:00:53 -05:00
Trevor Brown
87137e4103
fix: Ban ls
command ( #1141 )
...
* Ban `ls` command
* Update banned commands test so it only checks bash and sh files
* Only allow `ls` for resolving symlinks
* Replace `ls` commands with `find`
2021-12-29 12:10:39 -05:00
Jochen Schalanda
e61e3d9ade
feat: case-insensitive filtering of unstable versions in latest
( #1139 )
...
* feat: case-insensitive filtering of unstable versions in `latest`
* Fix versions in version_commands tests
2021-12-29 08:50:06 -05:00
Alberto de Murga
aafe1e5304
fix: latest --all correctly report plugins as missing ( #1118 )
2021-12-09 16:49:24 +11:00
Trevor Brown
6e4c39c244
fix: ban grep long flags ( #1117 )
...
Co-authored-by: James Hegedus <jthegedus@hey.com>
2021-12-09 13:17:49 +11:00
Alberto de Murga
f85fef533f
feat(latest): adds the flag --all to the latest command ( #1096 )
2021-12-05 23:41:27 +11:00
Elijah
cc7778a040
feat: Elvish Shell support ( #1066 )
2021-11-18 21:05:27 +11:00
Chris Rose
41162849cf
fix: clarify the wording when no version is set ( #1088 )
...
Co-authored-by: Chris Rose <offline@offby1.net>
Co-authored-by: jthegedus <jthegedus@hey.com>
2021-11-14 14:35:42 +11:00
Radon Rosborough
c911f2d431
fix: Fix plugin-test arg parsing ( #1084 )
2021-11-08 09:40:53 +11:00
Eric Nielsen
73efc9fa97
fix: don't override existing ASDF_DIR ( #1008 )
2021-11-03 09:47:43 +11:00
Max Nordlund
847ec73751
fix: Use more idiomatic fish ( #1042 )
...
The use of `.` is deprecated in fish, unlike POSIX shells. We can avoid
calling `psub` and pipe directly into source which does the same thing.
https://fishshell.com/docs/current/cmds/source.html
2021-10-07 09:20:41 -04:00
Alberto de Murga
8a515f49d7
fix: Adds "grep -P" to the list of banned commands ( #1064 )
...
Co-authored-by: James Hegedus <jthegedus@hey.com>
2021-10-07 09:58:42 +11:00
Alberto de Murga
9430a39aef
feat: Displays a warning when a plugin from the tools-version list does not exist ( #1033 )
...
* feat: Displays a warning when the plugin from the tools-version does not exist
When calling the install command, it tried to look for versions for all
the plugins available and installed them. With this change, it will attempt to
find versions for all the installed plugins and plugins defined in the
`.tool-versions`.
Fixes https://github.com/asdf-vm/asdf/issues/574
* feat: Changes the algorithm to detect not installed plugins
This patch changes the algorithm. It preserves the original logic for
the plugin resolution, but at the same time, reports entries with plugins not
available.
* fix: Addresses the pull request comments.
- Changes the comparison to be strict rather than partial.
- Prints a list of missing plugins.
- Exists if at least one plugin is not present.
- Adds unit tests.
2021-10-01 08:38:57 -04:00
Yasunori Fujie
304f72dbb2
feat: add post update plugin support ( #1049 )
...
Co-authored-by: James Hegedus <jthegedus@hey.com>
2021-09-24 08:53:52 +10:00
Yasunori Fujie
3e0cb9aaea
fix: help for extension commands for plugins with hyphens in the name. ( #1048 )
...
* test: add test for plugin command list in asdf help
* fix: help for plugins containing hyphens
2021-09-23 14:47:26 -04:00
Yasunori Fujie
7e1f2a0d93
fix: wait until the plugin update are finished ( #1037 )
2021-09-14 09:44:53 -04:00
James Hegedus
a3ba5a794c
feat: toggle off repo sync completely ( #1011 )
2021-08-04 08:41:19 +10:00
James Hegedus
7697e6e344
fix: regex validate plugin names on plugin add cmd ( #1010 )
2021-07-30 08:49:01 +10:00
Trevor Brown
2ad0f5ea45
fix: allow plugin callbacks to be in any language ( #995 )
2021-07-30 08:44:14 +10:00
Mark Yen
39c9999519
fix: ensure shims get created when data dir has spaces ( #996 )
2021-07-20 14:21:39 +10:00
Alberto de Murga
664d82ed8a
feat: asdf latest defer to plugin to determine the latest version ( #938 )
...
Co-authored-by: James Hegedus <jthegedus@hey.com>
2021-07-07 12:51:19 +10:00
Kevin Lane
5cf8f8962f
fix: support latest with filter on local and global ( #633 )
...
Co-authored-by: Thomas B Homburg <thomas@homburg.dk>
Co-authored-by: James Hegedus <jthegedus@hey.com>
2021-07-06 21:17:00 +10:00
Neo Hsu
1716afa021
feat: configurable plugin repo last check time ( #957 )
...
Co-authored-by: James Hegedus <jthegedus@hey.com>
2021-06-02 14:22:27 +10:00
Trevor Brown
79eca42572
Update banned_commands.bats tests to ignore string literals
2021-05-24 17:30:51 -04:00
Trevor Brown
e121a93716
Update banned_commands.bats
...
Update banned_commands.bats so commands in comments are ignored and output
is only printed when a banned command is found.
2021-05-21 12:40:23 -04:00
Trevor Brown
f125741fb5
Update code to use . instead of source
2021-05-21 12:03:06 -04:00
Trevor Brown
5ca750edb2
Add source
to list of banned commands
2021-05-21 11:58:49 -04:00
Trevor Brown
156a82cc49
Merge pull request #863 from asdf-vm/ban-process-substitution
...
Ban process substitution from asdf codebase
2021-05-20 08:44:58 -04:00
Matt
a7d3661f6c
fix: insert error handling in list-all & download plugin scripts ( #881 )
2021-05-19 19:51:45 +10:00
James Hegedus
10d9c1218e
Merge branch 'master' into ban-process-substitution
2021-04-27 19:34:35 +10:00
James Hegedus
456d8e36ca
fix: <plugin update all> to latest commit on default branch for each plugin ( #800 )
2021-03-02 17:37:05 +11:00
Trevor Brown
dd20022830
Add both the short and long versions of the --sort-versions flag to the banned commands
...
Related to #755
2021-02-10 14:45:02 -05:00
Trevor Brown
f633811577
Ban process substitution from asdf codebase
2021-02-05 11:28:27 -05:00
Jean-Paul Bonnetouche
0de6910d1f
fix: shims break when POSIXLY_CORRECT=1
...
Process substitution isn't specified by POSIX and makes shims break when called by a script that `export POSIXLY_CORRECT=1` (like gitflow [here](https://github.com/nvie/gitflow/blob/develop/git-flow#L78 )).
Here we replace `grep -f <(cmd1) <(cmd2)` with `cmd2 | grep -F "$(cmd1)"` so that we can provide a string instead of a file descriptor and get the same result as before.
(Note: We also check if the result of `cmd1` is empty before running `grep` to get the same behavior as with `-f`. This also prevent crashes if null results are piped to `xargs` and fits nicely with the `with_shim_executable` function that already check the result of `$selected_version` before going on).
Fixes : #581
2021-01-14 13:19:27 +01:00
Aaron Jensen
d2b7e2fceb
Update no plugin installed error message ( #818 )
2020-12-21 11:00:09 +11:00
Trevor Brown
34593c1766
Fix resolution of relative symlinks
...
Fixes #366 , #625
2020-10-08 10:17:01 -04:00
Trevor Brown
5d5ab1e6b2
Cleanup unused code in plugin update tests
2020-09-28 11:16:04 -04:00
Trevor Brown
2e3dd351b5
chore: basic tests for plugin-update command ( #807 )
2020-09-27 14:10:26 +10:00
Trevor Brown
8bbefba072
chore: ban echo command ( #806 )
2020-09-22 08:27:52 +10:00
Jochen Schalanda
0edb50547c
feat: support for "latest" in shell, local, and global ( #802 )
2020-09-19 15:37:52 +10:00
James Hegedus
b178cb07a7
fix: rm asdf current header row for now ( #793 )
2020-09-02 09:11:07 +10:00
James Hegedus
e9c149ea21
fix: incorrect version output in asdf current ( #746 )
2020-08-29 09:09:22 +10:00
Daniel Perez
77a748d70a
fix: _where_ bug when multiple versions are selected ( #790 )
...
Fixes #690
2020-08-28 19:24:59 +10:00
James Hegedus
8ca2af3316
feat: cmd to print debug information ( #787 )
2020-08-24 10:55:41 +10:00
Trevor Brown
cc0023b022
feat: plugin documentation callback support 🎉 ( #757 )
2020-07-31 18:47:18 +10:00
James Hegedus
a5c815b6d4
fix: print tool-versions file dir on shim error ( #750 )
2020-07-31 18:46:33 +10:00
Dan Fuchs
d7e1e66c03
Add test for invalid asdf install
arguments
2020-07-09 21:18:16 -05:00
Dan Fuchs
6a1855e26f
Install one tool specified in .tool-versions
...
`asdf install <name>` installs that single tool at the version specified
in `.tool-versions`. If there is no `.tool-versions` or if that tool is
not in it, an error message is shown and `asdf` exits `1`.
Implements #759
2020-07-09 18:16:50 -05:00
Trevor Brown
aef4ae8b5a
fix: ban the sort -V command ( #755 )
2020-07-08 15:37:52 +10:00
Trevor Brown
4219f9f5b1
Add column to list of banned commands for the asdf codebase
2020-07-06 09:47:35 -04:00
Thomas B Homburg
1b7b4da0a6
fix: remove column
command in favor of awk ( #721 )
2020-06-17 08:26:46 +10:00
Alexandre ZANNI
f5c7dae331
fix: asdf shell command docs & help output ( #737 )
...
Co-authored-by: James Hegedus <james@jthegedus.com>
2020-06-13 10:43:52 +10:00
Aravinda Rao
fe26274f38
Ensure consistency in indentation for message shown when no versions installed
2020-05-18 21:48:27 +05:30
Trevor Brown
410f414529
Remove downloads when removing a plugin
2020-05-14 09:13:51 -04:00
Trevor Brown
d65283548f
Fix formatting issue
2020-05-08 14:15:21 -04:00
Trevor Brown
2a058af9eb
Merge branch 'master' into tb/keep-source
2020-05-08 10:21:59 -04:00
Trevor Brown
309a4f1a12
Don't delete the download directory if the --keep-download flag is passed or the always_keep_download config is set to yes
2020-05-04 15:05:10 -04:00
Trevor Brown
5c6f24f1ce
Add basic tests for legacy plugins
2020-05-04 11:18:31 -04:00
Trevor Brown
0e0922a014
Add unit test for plugin add exit code
2020-03-31 09:20:10 -04:00
Jochen Schalanda
3c3f0e67f6
Rename custom plugin-add/plugin-remove for plugins ( #684 )
...
Rename custom scripts for `plugin-add` and `plugin-remove` phases in plugins to make clear when they are executed:
`plugin-add` -> `post-plugin-add`
`plugin-remove` -> `pre-plugin-remove`
2020-03-22 12:57:54 +11:00
Jochen Schalanda
95d4c07294
Set Git user and email in tests
2020-03-21 15:12:01 +01:00
Jochen Schalanda
57186be6d9
Support customizing plugin-add and plugin-remove
...
* Add support for custom `plugin-add` and `plugin-remove` in plugins
* Add configurable command hooks for plugin installation and removal
```shell
pre_asdf_plugin_remove = echo will remove plugin ${1}
pre_asdf_plugin_remove_foo = echo will remove plugin foo
post_asdf_plugin_remove = echo removed plugin ${1}
post_asdf_plugin_remove_foo = echo removed plugin foo
```
Closes #670
2020-03-21 14:59:33 +01:00
Victor Hugo Borja
a26bed6586
Make sure extension commands are properly displayed by asdf help
2020-03-15 11:45:09 -06:00
Jochen Schalanda
609e41e276
Use different exit code if updates are disabled
...
If asdf-vm was installed with a package manager and the user doesn't
have the necessary permissions to update it with `asdf update`, asdf-vm
emits an informational message and exits with exit code 1.
This makes it hard to programmatically detect whether the update failed
or wasn't even attempted because it's not possible.
With this change, asdf-vm would exit with the exit code 42 if updates are
disabled instead of exit code 1, which signals an error during update.
Refs r-darwish/topgrade#367
2020-03-13 10:14:28 +01:00
Trevor Brown
7a05244ece
Add legacy plugin fixture
2020-03-06 19:13:53 -05:00
Trevor Brown
91a2a1f7be
Add get_download_path function
2020-03-06 18:54:33 -05:00
Trevor Brown
8b90d883ee
Require .bash extension for plugin extension commands
2020-03-02 13:13:20 -05:00
Trevor Brown
52cbf1165c
Add .bash file extensions to files containing code executed by Bash
2020-03-02 12:48:05 -05:00
Victor Borja
62c4fdb163
Merge pull request #623 from jonmast/prevent-exec-recursion
...
Ignore shim directory for executable lookups
2020-02-14 14:26:03 -06:00
Trevor Brown
42182f31c4
Add test for shim exec of path versions
2020-02-07 22:32:04 -05:00
Trevor Brown
e4a9ad6e58
Merge pull request #649 from asdf-vm/tb/misc-test-improvements
...
Misc. Test Improvements
2020-02-05 07:51:42 -05:00
Trevor Brown
6d8d77f51d
Unset ASDF_DIR variable before running tests
2020-02-04 11:23:09 -05:00
Trevor Brown
f787b719ac
Merge pull request #640 from asdf-vm/improve-export-shell
...
Fix asdf shell xx --unset for fish
2020-02-04 08:17:54 -05:00
Trevor Brown
79ffc55f82
Add another test for asdf_data_dir function
2020-01-31 14:03:33 -05:00
Trevor Brown
84ab5b7753
Fix hanging 'asdf update is a noop for non-git repos' test
2020-01-29 09:58:59 -05:00
Daniel Perez
e53de6726f
Fix asdf shell xx --unset for fish
2020-01-25 20:42:43 +00:00
Timo Sand
09db5d6bfc
Switches to actually use latest instead of first
2019-12-30 23:25:56 +02:00
Timo Sand
340b027b5f
Removes echo overcomplication
2019-12-30 21:03:38 +02:00
Jonathan Mast
069c74f45e
Ignore shim directory for executable lookups
...
Previously, the shims directory was only excluded for system versions,
which meant that `asdf exec` would fall back to a shim if the install
didn't have the desired binary. If the shims are up to date this isn't a
problem since we check the metadata, but it causes issues if those are
out of sync for whatever reason.
I've checked all the uses of this function and I'm not seeing anywhere
we should need the old behavior.
2019-12-21 15:24:55 -05:00
Jonathan Mast
67e0e50445
Run config tests in BATS_TMPDIR for clean environment
...
This avoids issues with it picking up config files from parent
directories.
2019-12-21 14:22:32 -05:00
Luke Bonaccorsi
c728018627
Fix issue with preset version warning assuming that the shim name and plugin name are the same
2019-12-20 17:26:00 +00:00
Victor Borja
ff57001691
Merge pull request #609 from tejanium/clearer-warning
...
Clarify instructions when <version> of a <shim_name> is missing.
2019-12-13 12:02:16 -06:00
Teja Sophista
026aa78f35
Output different warning for empty and missing version
...
1. when `.tool-versions` is not set
2. when `.tool-versions` set version that is not installed
2019-12-04 14:18:58 +00:00
Victor Hugo Borja
5ab01f49df
Allow eval only on asdf function at lib/asdf.sh.
...
It's needed for `asdf shell` command.
2019-12-03 11:04:04 -06:00
Victor Hugo Borja
3d3595c7a3
Improvements to asdf plugin
commands.
2019-11-30 14:18:37 -06:00
Victor Hugo Borja
b8dc5f1604
Run shfmt on bash files
2019-11-29 10:15:38 -06:00
Victor Hugo Borja
83dc1712e3
Change to test HOME on test setup
2019-11-27 12:25:34 -06:00
Victor Hugo Borja
e968fe6142
Subcommand-aware command line interface.
2019-11-27 12:17:17 -06:00
Victor Hugo Borja
70099027c2
Move plugin extension command into it's own file.
...
Add a test for calling default command with arguments.
2019-11-25 12:07:55 -06:00
Victor Hugo Borja
a22733f819
Resolve asdf PLUGIN_NAME
default command.
...
When calling `asdf foo` and the `foo` plugin provides a `bin/default-command`
2019-11-25 02:47:55 -06:00
Victor Hugo Borja
0e8e1f8f84
New feature: asdf extension commands
...
It's possible for plugins to define new asdf commands. This way plugins can extend asdf capabilities or expose utilities related to their managed tool.
For example, a `foo` plugin might expose the command `asdf foo bar` by providing an executable file at `bin/bar`.
If `bin/bar` is a file but has no executable bit set, then its considered a source-able bash script, and will be sourced
with all the functions in `$ASDF_DIR/lib/utils.sh` already loaded.
A good example of this feature is the `nodejs` plugin, where people must import the release team keyring before
installing a nodejs version. People can execute the following command without having to know where exactly is the plugin located.
2019-11-25 02:24:46 -06:00
Kevin Lane
c11409583f
Add unit tests for managing latest stable versions
2019-11-22 10:37:53 -08:00
Trevor Brown
72e876b0ae
Handle dashes in executable names properly
2019-10-24 12:05:44 -04:00
Trevor Brown
edb5839239
Rename find_version to find_versions since it can return multiple versions
2019-10-22 19:03:05 -04:00
Trevor Brown
cea9b9574f
Install multiple versions when multiple versions are present in a .tool-versions file
2019-10-22 18:58:30 -04:00
OZAWA Sakuro
bc309c0fe5
Remove quotes from --unset option
2019-09-02 11:55:42 +09:00
OZAWA Sakuro
503263a68d
Add --unset option to shell command
2019-08-17 22:46:00 +09:00
Trevor Brown
549d86e733
Add tests for duplicate colon path issue
2019-08-14 19:31:23 -04:00