crofty 0.18.0 — two ways in
crofty used to arrive six ways. Every one of them did the same thing — copy a single binary onto your PATH — and most of them existed for a second reason: to drag Hugo in as a package dependency. The click installers carry Hugo themselves now, which retires that reason. 0.18.0 removes what was left.
Before
brew install ShiroDoromoto/crofty/crofty
scoop install crofty
sudo apt install crofty # from a repo that made you write trusted=yes
sudo dnf install crofty # …and gpgcheck=0
curl -fsSL https://crofty.site/install.sh | sh
After
crofty.pkg / crofty-setup.exe # double-click; Hugo is inside
curl -fsSL https://crofty.site/install.sh | sh
Or download the archive from the releases page and put the binary wherever you like. That route needs nothing but a browser, which matters more than it sounds: on some Windows machines the system TLS stack refuses the one-liner outright.
If you installed the old way
Nothing breaks, and nothing updates either. brew upgrade and scoop update
quietly find nothing; the .deb and .rpm never had a repository behind them
at all. The update notice crofty prints now names the way out instead of an
upgrade that does nothing. Leave, then come back by the installer or the
script — nothing you wrote is touched.
When the install script fails
It used to fail in silence. curl was piped into tar, and POSIX sh has no
pipefail, so a 404 or a dead proxy surfaced as a confusing tar error. Now:
$ curl -fsSL https://crofty.site/install.sh | sh
crofty: download failed (curl exit 56): …/crofty_9.9.9_darwin_arm64.tar.gz
the asset may not exist yet, or dns / tls / a proxy is blocking github.
check with: curl -fsSIL …/crofty_9.9.9_darwin_arm64.tar.gz
or install it by hand:
1. download …/crofty_9.9.9_darwin_arm64.tar.gz
2. tar -xzf crofty_9.9.9_darwin_arm64.tar.gz
3. mkdir -p ~/.local/bin && install -m 0755 crofty ~/.local/bin/crofty
4. add ~/.local/bin to your PATH
$ echo $?
3
The exit codes are stable, so a person and an agent can both branch on them:
2 unsupported platform, 3 download failed, 4 cannot write to the prefix.
A prefix you can’t write to prints both ways out — pick a different one, or
elevate. The script never elevates for you.
Also in this release
crofty previewno longer leaves ahugobehind. Killing the wrapper used to orphan the server, withstatusreporting nothing was running. Both halves are now tracked; an orphan is reported as"abandoned": trueand reaped on the next preview. The--timeoutdeadline lives inpreview.json, so it survives the process that promised it.crofty configsays where crofty keeps its state, and whether it may write there — probed, not guessed from mode bits. An agent can ask before it acts, instead of runninginitto find out.
Getting it
Download crofty.pkg or crofty-setup.exe and double-click it. The OS will warn you once — the installers are unsigned, and getting started walks through it.
From a terminal:
curl -fsSL https://crofty.site/install.sh | sh # macOS / Linux
irm https://github.com/ShiroDoromoto/crofty/releases/latest/download/install.ps1 | iex # Windows