Before, a binary in a folder magpie may not write to, on a system that
can't ask for the administrator's password (Windows; Linux without
pkexec), was left with no exe to replace and shown only "{v} is out";
Download opened GitHub. The reporter found the cause themselves: the exe
was at C:\. updater.placeExe now marks it stuck "not-writable" with the
folder, and updateStuck says to move it to a folder the user can write
to; zh, zh-TW, ja and de strings added.
Verified:
- TestUpdateNotWritableSaysWhy (internal/gui) fails without the fix:
"a binary in a folder magpie can't write to: {State:available ...
Stuck: StuckDir: ...}"; passes with it.
- update-stuck.test.cjs, Chromium and WebKit, en/zh/ja/de at 1000px and
440px: 18/18 pass; without the app.js change it fails (the reason text
never appears, waitForFunction timeout).
- gui-ja, gui-de, gui-zh-tw, i18n-keys, update-*.test.cjs, cli-path:
136/136 pass in both engines.
- go vet ./internal/gui, go build, GOOS=linux/windows go vet -tags nogui
./internal/gui, GOOS=windows go build; sandbox HOME go test -tags nogui
./... all ok.
- On the Windows box, update.Writable (a windows/amd64 build, over ssh)
is false for a folder whose ACL denies the user write. Over ssh the
token is High integrity, so C:\ itself reads writable there; a
standard user's C:\ and the GUI on Windows weren't tried.