From be603d0b0155edd2d89421d35b849cbfba065cf4 Mon Sep 17 00:00:00 2001 From: Svjatoslav Agejenko Date: Mon, 31 Aug 2026 00:47:41 +0300 Subject: [PATCH] feat(install): install system-wide under /usr/local with preflight checks - abort early with a clear error if mvn is missing or the available JDK is older than 21 (handles legacy 1.8 version scheme) - hardcode the prefix to /usr/local so all users get the jar, launcher and desktop entry; drop CRT_BASIC_PREFIX and the per-user ~/.local default; require sudo and fail fast before building - hide the .desktop entry from the app menu (NoDisplay) while keeping the text/x-basic "Open With" association - document dependencies, install layout and window mouse-grab behavior in index.org; refresh crtbasic.png --- Documentation/crtbasic.png | Bin 26801 -> 26853 bytes Documentation/index.org | 40 +++++++++++++++++++++----- install.sh | 56 ++++++++++++++++++++++++++++++------- 3 files changed, 79 insertions(+), 17 deletions(-) diff --git a/Documentation/crtbasic.png b/Documentation/crtbasic.png index 710568a5ed582433726d14ac6a35b1340f681d16..7c03076721e0af0f6e3143e4c0be4acf0de571bb 100644 GIT binary patch literal 26853 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 literal 26801 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 z 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 exit 1; } + +# --- Dependency checks (abort early with a clear message) -------------- + +command -v mvn >/dev/null 2>&1 \ + || fail "Apache Maven (mvn) not found on PATH. Install Maven and retry." + +JAVA_BIN="" +if [ -n "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then + JAVA_BIN="$JAVA_HOME/bin/java" +else + JAVA_BIN="$(command -v java || true)" +fi +[ -n "$JAVA_BIN" ] \ + || fail "java not found. Install JDK 21 or newer, or set JAVA_HOME." + +JAVA_VER="$("$JAVA_BIN" -version 2>&1 \ + | sed -n 's/.*version "\([^"]*\)".*/\1/p' | head -n 1)" +[ -n "$JAVA_VER" ] \ + || fail "could not parse version from '$JAVA_BIN -version'." + +JAVA_MAJOR="${JAVA_VER%%.*}" +# Legacy scheme: 1.8.0_XXX means major version 8 +if [ "$JAVA_MAJOR" = "1" ]; then + JAVA_MAJOR="$(echo "$JAVA_VER" | cut -d. -f2)" +fi +case "$JAVA_MAJOR" in + ''|*[!0-9]*) fail "unparsable java version string: '$JAVA_VER'" ;; +esac +[ "$JAVA_MAJOR" -ge 21 ] \ + || fail "JDK 21 or newer required (found $JAVA_VER at $JAVA_BIN)." + +echo "Using java $JAVA_VER ($JAVA_BIN)" + +PREFIX=/usr/local +[ -w "$PREFIX" ] || fail "cannot write to $PREFIX — run this installer with sudo." + PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)" echo "Building CRT Basic..." @@ -31,8 +67,10 @@ exec java -jar "$PREFIX/share/crtbasic/crt-basic.jar" "\$@" EOF chmod +x "$PREFIX/bin/crtbasic" -# Desktop integration: appear in "Open With" for .bas files (text/x-basic). -APPS_DIR="$HOME/.local/share/applications" +# Desktop integration: "Open With" for .bas files (text/x-basic). +# NoDisplay=true keeps it out of the app menu — it only makes sense +# launched with a file, never on its own. +APPS_DIR="$PREFIX/share/applications" mkdir -p "$APPS_DIR" cat > "$APPS_DIR/crtbasic.desktop" </dev/null || true -- 2.20.1