Rewrite README, point to jacboy/sysperf, add version and truncation guard #2

Merged
jacboy merged 1 commit from claude/lucid-planck-v4zwtb into master 2026-11-09 14:00:26 +00:00
jacboy commented 2026-11-09 13:57:11 +00:00 (Migrated from github.com)

Prepares the script for its own distribution from jacboy/sysperf and, later, getsysperf.com.

Changes

README (rewritten)

  • Quick start: curl and wget, a read-before-run variant, and how to keep a log with tee.
  • What each test measures:
    • system information
    • fio parameters, and that the test file goes to the current directory
    • the 12 latency targets
    • the 34 speed-test hosts as a table by region
    • sysbench settings and what its scores can be compared with
  • Options: GEEKBENCH=7, with its download size, disk and RAM needs, checksum verification and the upload notice. It also explains that the variable goes in front of bash, not curl.
  • Requirements: OS versions, packages (and universe on Ubuntu), when root is needed, disk space, and running without a terminal.
  • Security and privacy: temporary files and their cleanup, the truncation guard, and the full list of hosts the script contacts.
  • Example output as text from a real run on Debian 13. ISP and ASN are replaced with example values.
  • Troubleshooting.

Everything points to jacboy/sysperf

  • Every download URL in the README uses raw.githubusercontent.com/jacboy/sysperf/master/bench.
  • The banner printed by the script now links github.com/jacboy/sysperf instead of iandk/sysperf.
  • Removed sample_output.png. It showed the old version (Linode hosts, Geekbench 5); the README now has a text example.

Script

  • SYSPERF_VERSION="2.0.0", shown in the banner (getsysperf.com v2.0.0 -- …).
  • Truncation guard: the script body is wrapped in main(), which is only called on the last line. If a download breaks off during curl … | bash, bash sees an incomplete function and runs nothing, instead of running the first part of the script. This matters for the one-liner on getsysperf.com.

Testing

  • Truncation guard: the script was cut at 10, 30, 50, 70, 90 and 99 % and piped into bash. Every time it ran nothing and only reported syntax error: unexpected end of file.
  • Full script inside main(): started piped into bash, it printed the banner with v2.0.0 and the system information, and began the I/O test. When stopped, it removed its work directory.
  • bash -n and shellcheck show no new warnings.
  • https://raw.githubusercontent.com/jacboy/sysperf/master/bench serves the current master script.

Not in this PR

  • The getsysperf.com landing page and Cloudflare Pages setup come next. Once the domain is live, the README one-liner switches to curl -fsSL https://getsysperf.com/bench | bash.

Generated by Claude Code

Prepares the script for its own distribution from `jacboy/sysperf` and, later, `getsysperf.com`. ## Changes ### README (rewritten) - **Quick start:** `curl` and `wget`, a read-before-run variant, and how to keep a log with `tee`. - **What each test measures:** - system information - fio parameters, and that the test file goes to the current directory - the 12 latency targets - the 34 speed-test hosts as a table by region - sysbench settings and what its scores can be compared with - **Options:** `GEEKBENCH=7`, with its download size, disk and RAM needs, checksum verification and the upload notice. It also explains that the variable goes in front of `bash`, not `curl`. - **Requirements:** OS versions, packages (and `universe` on Ubuntu), when root is needed, disk space, and running without a terminal. - **Security and privacy:** temporary files and their cleanup, the truncation guard, and the full list of hosts the script contacts. - **Example output** as text from a real run on Debian 13. ISP and ASN are replaced with example values. - **Troubleshooting.** ### Everything points to `jacboy/sysperf` - Every download URL in the README uses `raw.githubusercontent.com/jacboy/sysperf/master/bench`. - The banner printed by the script now links `github.com/jacboy/sysperf` instead of `iandk/sysperf`. - **Removed `sample_output.png`.** It showed the old version (Linode hosts, Geekbench 5); the README now has a text example. ### Script - **`SYSPERF_VERSION="2.0.0"`**, shown in the banner (`getsysperf.com v2.0.0 -- …`). - **Truncation guard:** the script body is wrapped in `main()`, which is only called on the last line. If a download breaks off during `curl … | bash`, bash sees an incomplete function and runs nothing, instead of running the first part of the script. This matters for the one-liner on `getsysperf.com`. ## Testing - **Truncation guard:** the script was cut at 10, 30, 50, 70, 90 and 99 % and piped into bash. Every time it ran nothing and only reported `syntax error: unexpected end of file`. - **Full script inside `main()`:** started piped into bash, it printed the banner with `v2.0.0` and the system information, and began the I/O test. When stopped, it removed its work directory. - `bash -n` and shellcheck show no new warnings. - `https://raw.githubusercontent.com/jacboy/sysperf/master/bench` serves the current `master` script. ## Not in this PR - **The `getsysperf.com` landing page and Cloudflare Pages setup** come next. Once the domain is live, the README one-liner switches to `curl -fsSL https://getsysperf.com/bench | bash`. --- _Generated by [Claude Code](https://claude.ai/code/session_01WFUVi2gu5nYSuZeyRWAGiM)_
Sign in to join this conversation.
No description provided.