Skip to content

feat: one-line install via GitHub Pages - #3

Merged
tuna4ll merged 1 commit into
tuna4ll:mainfrom
tutkuofnight:feat/install-script-and-pages
Aug 31, 2026
Merged

tuna4ll merged 1 commit into
tuna4ll:mainfrom
tutkuofnight:feat/install-script-and-pages

Conversation

@tutkuofnight

Copy link
Copy Markdown
Contributor

Closes #2.

Installing meant cloning the repo and building it with cargo, which asks for a Rust toolchain before you can see whether you want the tool at all. The release workflow already publishes binaries for four targets — nothing was serving them.

curl -fsSL https://tuna4ll.github.io/ratfetch/install.sh | sh

What is here

  • install.sh — resolves the latest release, picks the tarball matching the machine's architecture and libc (x86_64/aarch64, gnu/musl), verifies it against the release's SHA256SUMS and refuses to install on a mismatch, then installs to ~/.local/bin (or /usr/local/bin as root) and adds that to PATH when it is missing. Plain POSIX sh, curl or wget, no jq. RATFETCH_VERSION, RATFETCH_INSTALL_DIR and RATFETCH_NO_MODIFY_PATH override the defaults.
  • site/index.html — a small landing page: the one-liner with a copy button, the demo screenshot, the manual routes. Light and dark.
  • .github/workflows/pages.yml — publishes site/ plus install.sh to GitHub Pages on push to main, so the installer is served at the URL above. Syntax-checks the script before deploying.
  • README — the one-liner up front, the source builds kept under Manual setup; they are still the answer for architectures without a prebuilt binary, and for hacking on it.

No change to release.yml — the existing tarballs and SHA256SUMS are exactly what the installer consumes.

Before this works

GitHub Pages has to be switched on for the repo: Settings → Pages → Source: GitHub Actions. The workflow deploys on the first push to main after that.

Tested

Ran end to end against the published v0.1.0 release on x86_64 glibc: resolved the tag, verified the checksum, installed, ratfetch --version reported ratfetch 0.1.0.

AUR was the other suggestion in #2 — worth doing, but it is a separate packaging track and does not block this one.

Installing meant cloning the repo and building it with cargo, which asks for a
Rust toolchain before you can see whether you want the tool at all. The release
workflow already publishes binaries for four targets, so the pieces to skip
that were there — nothing was serving them.

Add install.sh, which resolves the latest release, picks the tarball matching
the machine's architecture and libc, verifies it against the release's
SHA256SUMS, and installs to ~/.local/bin (or /usr/local/bin as root), adding
that to PATH when it is missing. Plain POSIX sh, curl or wget, no jq.

Serve it, plus a small landing page, from GitHub Pages via a new workflow so
the documented one-liner has somewhere to point:

    curl -fsSL https://tuna4ll.github.io/ratfetch/install.sh | sh

The source builds stay in the README under "Manual setup" — they are still the
answer for architectures without a prebuilt binary, and for hacking on it.
@tutkuofnight
tutkuofnight force-pushed the feat/install-script-and-pages branch from d660f6b to e255037 Compare August 31, 2026 20:20
@tuna4ll
tuna4ll merged commit 13479df into tuna4ll:main Aug 31, 2026
2 checks passed
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.

Feature Request: Making installation easier

2 participants