Skip to content

feat: add cross-platform installer script and reorganize READMEs#1

Open
perNyfelt wants to merge 4 commits into
mainfrom
feature/cross-platform-installer-and-readme-reorg
Open

feat: add cross-platform installer script and reorganize READMEs#1
perNyfelt wants to merge 4 commits into
mainfrom
feature/cross-platform-installer-and-readme-reorg

Conversation

@perNyfelt

Copy link
Copy Markdown
Member

What changed

New file: `gui/src/main/assembly/install.sh`

  • Auto-detects OS (macOS / Linux / Windows-GitBash)
  • Locates the app bundle locally or downloads the latest GitHub release
  • Validates Java ≥21 + JavaFX; offers BellSoft Full JDK auto-install or manual path entry
  • Copies app to platform-standard directories (`/Applications/`, `/.local/share/MarkdownToPdf`, `~/MarkdownToPdf`)
  • Runs OS-appropriate launcher/shortcut scripts (createLauncher.sh on Linux, createShortcut.ps1 on Windows)
  • Detects existing installations and asks user to remove, rename (…-old), or cancel

Updated files:

  • `gui/createApp.sh` – now bundles `install.sh` as `md2pdf-install.sh` at the zip root
  • `README.md` – slimmed from 264 → 57 lines; concise project overview linking to module READMEs
  • `lib/README.md` – full self-contained API docs moved here (Maven usage, styling, images, custom fonts, page structure, third-party licenses, Spring Boot integration, build/test commands)
  • `gui/readme.md` – new \"Download and install from a release\" section documenting the installer workflow

Why

The previous installation docs described manual per-platform steps. Now users run one script that handles everything – Java checks, download if needed, app placement, and shortcut creation."

perNyfelt and others added 4 commits June 10, 2026 17:38
- Add gui/src/main/assembly/install.sh supporting macOS, Linux and Windows (Git Bash): auto-detects OS, downloads latest release if needed, validates Java ≥21 + JavaFX, offers BellSoft Full JDK install, copies app to platform-standard directories, creates launchers/shortcuts, and asks user how to handle existing installations (remove / rename / cancel).

- Update gui/createApp.sh to bundle the installer as md2pdf-install.sh at the zip root.

- Move all library API documentation from root README.md into lib/README.md (now self-contained with Maven usage, styling, images, custom fonts, Spring Boot integration, third-party licenses, build/test commands).

- Rewrite root README.md as a concise project overview linking to lib/README.md and gui/readme.md.

- Add installation instructions to gui/readme.md referencing the new installer script.
…hange. Adds an early Swing JWindow splash before JavaFX starts, hides it after the

    JavaFX window is shown, and makes the logger lazy so Log4j does not initialize before the splash.

  - gui/createApp.sh: packaging tweaks that were already present. It copies md2pdf-install.sh into target/ instead of the current dir, fixes Setfile to
    SetFile, and adds a final newline.

  - gui/readme.md:26: removes “Amazon Corretto with JavaFX” from the recommended JavaFX JDK list.
  - gui/src/main/assembly/install.sh:42: installer hardening that was already present. It changes curl auth headers to a Bash array, removes Python JSON
    parsing in favor of sed, validates the actual Java binary found on PATH, checks JavaFX availability, and makes BellSoft JDK extraction detection more
    robust.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant