Handle both 'Luca' and 'luca' binary names for case-sensitive filesystems#10
Merged
albertodebortoli merged 1 commit intomainfrom Mar 27, 2026
Merged
Conversation
…cripts The Linux zip may extract the binary as either 'luca' (lowercase) or 'Luca' (uppercase) depending on the release. On case-sensitive Linux filesystems this caused the mv to fail. Both scripts now detect whichever name is present.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
On Linux, filesystems are case-sensitive. The binary inside the release zip has historically been named
Luca(uppercase), but LucaTools/Luca#44 changes it toluca(lowercase). This means:install.shwas doingmv Luca /usr/local/bin/luca— which fails on Linux when the extracted file islucauninstall.shwas looking for the executable at$INSTALL_DIR/Luca— which would miss an installation at$INSTALL_DIR/lucaOn macOS the filesystem is case-insensitive by default, so this never surfaced there.
What changed
install.sh: after extracting the zip, the script now checks forLucafirst, then falls back toluca, and moves whichever is found. If neither exists, it exits with a clear error.uninstall.sh: the executable path is now resolved at runtime by checking forlucafirst, thenLuca, ensuring the correct file is removed regardless of which casing was used at install time.Backwards compatibility
This change is backwards-compatible: installations that used the old uppercase
Lucabinary continue to work, while installations using the new lowercaselucabinary (introduced in LucaTools/Luca#44) are also handled correctly.This PR goes hand-in-hand with LucaTools/Luca#44.