Adds support for SDKMAN! to fish
Find a file
Raphael Reitzig a0aa142288 fix: Respect globally set SDKMAN_DIR
Also, print a warning during shell startup
if a custom install path is set, but
SDKMAN! is not installed there.

fixes #52
2024-04-03 23:54:46 +02:00
.github Bump actions/checkout from 3 to 4 2024-04-01 19:27:51 +02:00
.idea fix: Tests for completions with custom install path 2024-04-03 22:20:29 +02:00
completions fix: Completions use custom install location 2024-04-03 22:20:29 +02:00
conf.d fix: Respect globally set SDKMAN_DIR 2024-04-03 23:54:46 +02:00
functions chore: Switch trunk to main 2023-06-27 00:28:22 +02:00
test fix: Respect globally set SDKMAN_DIR 2024-04-03 23:54:46 +02:00
.editorconfig Final macOS incompatibility fix. 2019-11-06 20:52:07 +01:00
.gitignore fix: Tests for completions with custom install path 2024-04-03 22:20:29 +02:00
CHANGELOG.md fix: Respect globally set SDKMAN_DIR 2024-04-03 23:54:46 +02:00
LICENSE chore: Switch trunk to main 2023-06-27 00:28:22 +02:00
README.md fix: Respect globally set SDKMAN_DIR 2024-04-03 23:54:46 +02:00

SDKMAN! for fish

license release GitHub release date Test CodeQL

Makes command sdk from SDKMAN! usable from fish, including auto-completion. Also adds binaries from installed SDKs to the PATH.

Version 2.0.0 has been tested with

  • fish 3.6.1, and
  • SDKMAN! 5.18.2, on
  • Ubuntu 22.04 LTS and macOS 12.6

Install

With fisher (install separately):

fisher install reitzig/sdkman-for-fish@v2.0.0

Note:

  • Only compatible with fisher v4 upwards; v3 is no longer supported.
  • You have to install SDKMAN! separately.
  • If you have installed SDKMAN! at a custom location, you need to either
    • set environment variable SDKMAN_DIR to that path using your preferred method, or
    • add
      set -g __sdkman_custom_dir /your/path/to/sdkman
      
      to a fish config file run before .config/fish/conf.d/sdk.fish; for example, you can use .config/fish/conf.d/config_sdk.fish.
    • If both are set, __sdkman_custom_dir is used.

Usage

It's all in the background; you should be able to run sdk and binaries installed with sdk as you would expect.

Contribute

When you make changes, please run the tests at least on one platform before creating a pull request.

As the tests may mess up your own setup -- you have been warned! -- the recommended way is to run the tests in a Docker container:

docker build -t sdkman-for-fish-tests -f test/Dockerfile .
docker run --rm -it sdkman-for-fish-tests

A run configuration for Jetbrains IDEs is included.

It is a also possible to run individual features, for instance:

docker run --rm sdkman-for-fish-tests features/completions.feature

As a corollary, this is the fastest way to run all tests (if you do not care about the report):

for f in features/*.feature
  docker run --rm sdkman-for-fish-tests "$f" &
done
wait

Acknowledgements