mirror of
https://github.com/binaricat/Netcatty.git
synced 2026-09-24 15:49:09 +00:00
01e7edc006
* feat(mosh): default bundled client to MoshCatty releases Wire Netcatty packaging and npm run dev to pull pure Rust mosh-client binaries from binaricat/MoshCatty (moshcatty-* tags), document the cutover, and mark the old Cygwin Windows fetch path as legacy-only. * fix(mosh): accept pure MoshCatty packages (exe-only, no dlls/terminfo) Align fetch/packaging with MoshCatty pure-Rust releases: require only mosh-client[.exe], treat Cygwin dll bags and terminfo as optional legacy layout. Document moshcatty-0.1.1 (ConPTY Ctrl+C + static MSVC CRT). * refactor(mosh): drop Cygwin legacy; MoshCatty-only pipeline Remove FluentTerminal/mosh-bin fallbacks, build-mosh C++ CI, and dll/terminfo runtime helpers. Fetch accepts only moshcatty-* pure binaries; packaging ships a single mosh-client per platform. * docs: align ET checklist and et README with MoshCatty-only mosh Update mosh template references after removing Cygwin build pipeline and legacy fallbacks. Point ET packaging notes at fetch-mosh / MoshCatty instead of deleted build-mosh-binaries workflow. * docs(mosh): require MoshCatty 0.1.2+ for Linux glibc floors Codex review vs main: defaulting to MoshCatty Linux binaries built on ubuntu-latest required GLIBC 2.34, above Netcatty's package floors (x64 2.28 / arm64 2.31). Document the floors, prefer moshcatty-0.1.2+, and drop trailing whitespace in the design note. Upstream MoshCatty release CI now builds in almalinux:8 / debian:bullseye with assert. * fix(mosh): reject MoshCatty releases below 0.1.2 Codex re-review: docs alone still allowed MOSH_BIN_RELEASE=moshcatty-0.1.0/0.1.1, which produce packages that fail to start on Netcatty's Linux glibc floors. Validate the minimum tag in resolve and fetch, skip pre-0.1.2 when picking latest, and cover the reject path in unit tests. * fix(mosh): pin MoshCatty owner and reject floor prereleases Codex review vs main (P2): - Always default MOSH_BIN owner/repo to binaricat/MoshCatty; do not inherit fork owner from GITHUB_REPOSITORY in resolve or fetch. - Treat moshcatty-X.Y.Z-rcN as below final X.Y.Z so pins like moshcatty-0.1.2-rc1 cannot bypass the glibc floor. * fix(mosh): accept build metadata in MoshCatty release tags TAG_RE rejected '+' so moshcatty-0.1.2+build.1 failed validation even though the version parser and isAtLeastMinRelease accepted it. Align the regex and require a successful semver parse.
50 lines
1.5 KiB
JavaScript
50 lines
1.5 KiB
JavaScript
// Platform-specific electron-builder extraResources for the MoshCatty client.
|
|
// Binaries are downloaded from binaricat/MoshCatty into resources/mosh/ by
|
|
// scripts/fetch-mosh-binaries.cjs. Pure single-binary layout only.
|
|
|
|
const fs = require("node:fs");
|
|
const path = require("node:path");
|
|
|
|
function requestedArch() {
|
|
return process.env.npm_config_arch || process.env.npm_config_target_arch || process.arch;
|
|
}
|
|
|
|
function hasFile(file) {
|
|
return fs.existsSync(file) && fs.statSync(file).isFile();
|
|
}
|
|
|
|
function moshExtraResources(platform) {
|
|
const moshRoot = path.resolve(process.cwd(), "resources", "mosh");
|
|
if (!fs.existsSync(moshRoot)) return [];
|
|
|
|
if (platform === "darwin") {
|
|
const file = path.join(moshRoot, "darwin-universal", "mosh-client");
|
|
if (!hasFile(file)) return [];
|
|
return [
|
|
{ from: "resources/mosh/darwin-universal/", to: "mosh/", filter: ["mosh-client"] },
|
|
];
|
|
}
|
|
|
|
if (platform === "linux") {
|
|
const arch = requestedArch();
|
|
const file = path.join(moshRoot, `linux-${arch}`, "mosh-client");
|
|
if (!hasFile(file)) return [];
|
|
return [
|
|
{ from: `resources/mosh/linux-${arch}/`, to: "mosh/", filter: ["mosh-client"] },
|
|
];
|
|
}
|
|
|
|
if (platform === "win32") {
|
|
const arch = requestedArch();
|
|
const exe = path.join(moshRoot, `win32-${arch}`, "mosh-client.exe");
|
|
if (!hasFile(exe)) return [];
|
|
return [
|
|
{ from: `resources/mosh/win32-${arch}/`, to: "mosh/", filter: ["mosh-client.exe"] },
|
|
];
|
|
}
|
|
|
|
return [];
|
|
}
|
|
|
|
module.exports = { moshExtraResources };
|