The sl shell script doesn't work when installed using gu
mthmulders opened this issue · comments
Steps to reproduce
Inside a fresh checkout of the project:
- Build the GraalVM component with
mvn package --am --pl ./component
. - Install the component in a GraalVM installation with
gu install -L component/sl-component.jar
. - Run
sl language/tests/HelloWorld.sl
Expected situation
Output is something like "Hello World!"
Actual behaviour
Output is
Could not find language on /usr/bin/language/target/simplelanguage.jar. Did you run mvn package?
Analysis
I believe this is due to the fact that the sl
script in the project root fails to detect it is invoked from an installed GraalVM component and so it follows the path for "local" invocations, i.e. from the project checkout.
The sl
binary from the component is symlinked into /usr/bin
, so extracting the GraalVM version by inspecting "$SCRIPT_HOME/../release" fails.
I think it can be fixed by following the symlink (/usr/bin/sl) using readlink -f
, and updating the relative paths to the language jar and the launcher jar accordingly.