Skip to content

Commit c44eb00

Browse files
committed
Release 0.7.1
- Add bin.js to git (was incorrectly ignored) - Add retry logic with exponential backoff to install.sh - Add comprehensive contributing and release documentation - Update README with contribution guidelines Fixes: - bin.js not found during npm publish - Download failures in install.sh now auto-retry
1 parent 1d893f3 commit c44eb00

File tree

9 files changed

+691
-10
lines changed

9 files changed

+691
-10
lines changed

.gitignore

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,3 @@
66
node_modules
77
.cargo-cache
88
dist
9-
10-
# Generated from bin.ts
11-
bin.js

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "bum"
3-
version = "0.7.0"
3+
version = "0.7.1"
44
edition = "2021"
55

66
[lib]

README.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,22 @@ As Bum is not tested at all on Windows, it may not works. If it's the case pleas
7777

7878
- `bum default <version>`
7979

80-
> Any contribution is appreciated, have any doubts/questions/suggestions/ideas? Drop them in the Discussion page.
80+
## Contributing
81+
82+
We welcome contributions! Please see our [Contributing Guide](./docs/CONTRIBUTING.md) for details on:
83+
- Development setup
84+
- Running tests
85+
- Code style guidelines
86+
- Pull request process
87+
88+
For maintainers releasing new versions, see the [Release Guide](./docs/RELEASE.md).
89+
90+
## Questions or Issues?
91+
92+
- 💬 Have questions? Open a [Discussion](https://github.com/owenizedd/bum/discussions)
93+
- 🐛 Found a bug? Open an [Issue](https://github.com/owenizedd/bum/issues)
94+
- 💡 Have ideas? We'd love to hear them!
95+
96+
## License
97+
98+
MIT

bin.js

Lines changed: 297 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,297 @@
1+
#!/usr/bin/env node
2+
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
3+
4+
// bum.darwin-arm64.node
5+
var require_bum_darwin_arm64 = __commonJS((exports2, module2) => {
6+
module2.exports = require("./bum.darwin-arm64-7xvffnqw.node");
7+
});
8+
9+
// index.js
10+
var require_bum = __commonJS((exports2, module2) => {
11+
var __dirname = "/Users/rthionanda/Learn/bum";
12+
var { existsSync, readFileSync } = require("fs");
13+
var { join } = require("path");
14+
var { platform, arch } = process;
15+
var nativeBinding = null;
16+
var localFileExisted = false;
17+
var loadError = null;
18+
function isMusl() {
19+
if (!process.report || typeof process.report.getReport !== "function") {
20+
try {
21+
const lddPath = require("child_process").execSync("which ldd").toString().trim();
22+
return readFileSync(lddPath, "utf8").includes("musl");
23+
} catch (e) {
24+
return true;
25+
}
26+
} else {
27+
const { glibcVersionRuntime } = process.report.getReport().header;
28+
return !glibcVersionRuntime;
29+
}
30+
}
31+
switch (platform) {
32+
case "android":
33+
switch (arch) {
34+
case "arm64":
35+
localFileExisted = existsSync(join(__dirname, "bum.android-arm64.node"));
36+
try {
37+
if (localFileExisted) {
38+
nativeBinding = (()=>{throw new Error("Cannot require module "+"./bum.android-arm64.node");})();
39+
} else {
40+
nativeBinding = (()=>{throw new Error("Cannot require module "+"@owenizedd/bum-android-arm64");})();
41+
}
42+
} catch (e) {
43+
loadError = e;
44+
}
45+
break;
46+
case "arm":
47+
localFileExisted = existsSync(join(__dirname, "bum.android-arm-eabi.node"));
48+
try {
49+
if (localFileExisted) {
50+
nativeBinding = (()=>{throw new Error("Cannot require module "+"./bum.android-arm-eabi.node");})();
51+
} else {
52+
nativeBinding = (()=>{throw new Error("Cannot require module "+"@owenizedd/bum-android-arm-eabi");})();
53+
}
54+
} catch (e) {
55+
loadError = e;
56+
}
57+
break;
58+
default:
59+
throw new Error(`Unsupported architecture on Android ${arch}`);
60+
}
61+
break;
62+
case "win32":
63+
switch (arch) {
64+
case "x64":
65+
localFileExisted = existsSync(join(__dirname, "bum.win32-x64-msvc.node"));
66+
try {
67+
if (localFileExisted) {
68+
nativeBinding = (()=>{throw new Error("Cannot require module "+"./bum.win32-x64-msvc.node");})();
69+
} else {
70+
nativeBinding = (()=>{throw new Error("Cannot require module "+"@owenizedd/bum-win32-x64-msvc");})();
71+
}
72+
} catch (e) {
73+
loadError = e;
74+
}
75+
break;
76+
case "ia32":
77+
localFileExisted = existsSync(join(__dirname, "bum.win32-ia32-msvc.node"));
78+
try {
79+
if (localFileExisted) {
80+
nativeBinding = (()=>{throw new Error("Cannot require module "+"./bum.win32-ia32-msvc.node");})();
81+
} else {
82+
nativeBinding = (()=>{throw new Error("Cannot require module "+"@owenizedd/bum-win32-ia32-msvc");})();
83+
}
84+
} catch (e) {
85+
loadError = e;
86+
}
87+
break;
88+
case "arm64":
89+
localFileExisted = existsSync(join(__dirname, "bum.win32-arm64-msvc.node"));
90+
try {
91+
if (localFileExisted) {
92+
nativeBinding = (()=>{throw new Error("Cannot require module "+"./bum.win32-arm64-msvc.node");})();
93+
} else {
94+
nativeBinding = (()=>{throw new Error("Cannot require module "+"@owenizedd/bum-win32-arm64-msvc");})();
95+
}
96+
} catch (e) {
97+
loadError = e;
98+
}
99+
break;
100+
default:
101+
throw new Error(`Unsupported architecture on Windows: ${arch}`);
102+
}
103+
break;
104+
case "darwin":
105+
localFileExisted = existsSync(join(__dirname, "bum.darwin-universal.node"));
106+
try {
107+
if (localFileExisted) {
108+
nativeBinding = (()=>{throw new Error("Cannot require module "+"./bum.darwin-universal.node");})();
109+
} else {
110+
nativeBinding = (()=>{throw new Error("Cannot require module "+"@owenizedd/bum-darwin-universal");})();
111+
}
112+
break;
113+
} catch {}
114+
switch (arch) {
115+
case "x64":
116+
localFileExisted = existsSync(join(__dirname, "bum.darwin-x64.node"));
117+
try {
118+
if (localFileExisted) {
119+
nativeBinding = (()=>{throw new Error("Cannot require module "+"./bum.darwin-x64.node");})();
120+
} else {
121+
nativeBinding = (()=>{throw new Error("Cannot require module "+"@owenizedd/bum-darwin-x64");})();
122+
}
123+
} catch (e) {
124+
loadError = e;
125+
}
126+
break;
127+
case "arm64":
128+
localFileExisted = existsSync(join(__dirname, "bum.darwin-arm64.node"));
129+
try {
130+
if (localFileExisted) {
131+
nativeBinding = require_bum_darwin_arm64();
132+
} else {
133+
nativeBinding = (()=>{throw new Error("Cannot require module "+"@owenizedd/bum-darwin-arm64");})();
134+
}
135+
} catch (e) {
136+
loadError = e;
137+
}
138+
break;
139+
default:
140+
throw new Error(`Unsupported architecture on macOS: ${arch}`);
141+
}
142+
break;
143+
case "freebsd":
144+
if (arch !== "x64") {
145+
throw new Error(`Unsupported architecture on FreeBSD: ${arch}`);
146+
}
147+
localFileExisted = existsSync(join(__dirname, "bum.freebsd-x64.node"));
148+
try {
149+
if (localFileExisted) {
150+
nativeBinding = (()=>{throw new Error("Cannot require module "+"./bum.freebsd-x64.node");})();
151+
} else {
152+
nativeBinding = (()=>{throw new Error("Cannot require module "+"@owenizedd/bum-freebsd-x64");})();
153+
}
154+
} catch (e) {
155+
loadError = e;
156+
}
157+
break;
158+
case "linux":
159+
switch (arch) {
160+
case "x64":
161+
if (isMusl()) {
162+
localFileExisted = existsSync(join(__dirname, "bum.linux-x64-musl.node"));
163+
try {
164+
if (localFileExisted) {
165+
nativeBinding = (()=>{throw new Error("Cannot require module "+"./bum.linux-x64-musl.node");})();
166+
} else {
167+
nativeBinding = (()=>{throw new Error("Cannot require module "+"@owenizedd/bum-linux-x64-musl");})();
168+
}
169+
} catch (e) {
170+
loadError = e;
171+
}
172+
} else {
173+
localFileExisted = existsSync(join(__dirname, "bum.linux-x64-gnu.node"));
174+
try {
175+
if (localFileExisted) {
176+
nativeBinding = (()=>{throw new Error("Cannot require module "+"./bum.linux-x64-gnu.node");})();
177+
} else {
178+
nativeBinding = (()=>{throw new Error("Cannot require module "+"@owenizedd/bum-linux-x64-gnu");})();
179+
}
180+
} catch (e) {
181+
loadError = e;
182+
}
183+
}
184+
break;
185+
case "arm64":
186+
if (isMusl()) {
187+
localFileExisted = existsSync(join(__dirname, "bum.linux-arm64-musl.node"));
188+
try {
189+
if (localFileExisted) {
190+
nativeBinding = (()=>{throw new Error("Cannot require module "+"./bum.linux-arm64-musl.node");})();
191+
} else {
192+
nativeBinding = (()=>{throw new Error("Cannot require module "+"@owenizedd/bum-linux-arm64-musl");})();
193+
}
194+
} catch (e) {
195+
loadError = e;
196+
}
197+
} else {
198+
localFileExisted = existsSync(join(__dirname, "bum.linux-arm64-gnu.node"));
199+
try {
200+
if (localFileExisted) {
201+
nativeBinding = (()=>{throw new Error("Cannot require module "+"./bum.linux-arm64-gnu.node");})();
202+
} else {
203+
nativeBinding = (()=>{throw new Error("Cannot require module "+"@owenizedd/bum-linux-arm64-gnu");})();
204+
}
205+
} catch (e) {
206+
loadError = e;
207+
}
208+
}
209+
break;
210+
case "arm":
211+
if (isMusl()) {
212+
localFileExisted = existsSync(join(__dirname, "bum.linux-arm-musleabihf.node"));
213+
try {
214+
if (localFileExisted) {
215+
nativeBinding = (()=>{throw new Error("Cannot require module "+"./bum.linux-arm-musleabihf.node");})();
216+
} else {
217+
nativeBinding = (()=>{throw new Error("Cannot require module "+"@owenizedd/bum-linux-arm-musleabihf");})();
218+
}
219+
} catch (e) {
220+
loadError = e;
221+
}
222+
} else {
223+
localFileExisted = existsSync(join(__dirname, "bum.linux-arm-gnueabihf.node"));
224+
try {
225+
if (localFileExisted) {
226+
nativeBinding = (()=>{throw new Error("Cannot require module "+"./bum.linux-arm-gnueabihf.node");})();
227+
} else {
228+
nativeBinding = (()=>{throw new Error("Cannot require module "+"@owenizedd/bum-linux-arm-gnueabihf");})();
229+
}
230+
} catch (e) {
231+
loadError = e;
232+
}
233+
}
234+
break;
235+
case "riscv64":
236+
if (isMusl()) {
237+
localFileExisted = existsSync(join(__dirname, "bum.linux-riscv64-musl.node"));
238+
try {
239+
if (localFileExisted) {
240+
nativeBinding = (()=>{throw new Error("Cannot require module "+"./bum.linux-riscv64-musl.node");})();
241+
} else {
242+
nativeBinding = (()=>{throw new Error("Cannot require module "+"@owenizedd/bum-linux-riscv64-musl");})();
243+
}
244+
} catch (e) {
245+
loadError = e;
246+
}
247+
} else {
248+
localFileExisted = existsSync(join(__dirname, "bum.linux-riscv64-gnu.node"));
249+
try {
250+
if (localFileExisted) {
251+
nativeBinding = (()=>{throw new Error("Cannot require module "+"./bum.linux-riscv64-gnu.node");})();
252+
} else {
253+
nativeBinding = (()=>{throw new Error("Cannot require module "+"@owenizedd/bum-linux-riscv64-gnu");})();
254+
}
255+
} catch (e) {
256+
loadError = e;
257+
}
258+
}
259+
break;
260+
case "s390x":
261+
localFileExisted = existsSync(join(__dirname, "bum.linux-s390x-gnu.node"));
262+
try {
263+
if (localFileExisted) {
264+
nativeBinding = (()=>{throw new Error("Cannot require module "+"./bum.linux-s390x-gnu.node");})();
265+
} else {
266+
nativeBinding = (()=>{throw new Error("Cannot require module "+"@owenizedd/bum-linux-s390x-gnu");})();
267+
}
268+
} catch (e) {
269+
loadError = e;
270+
}
271+
break;
272+
default:
273+
throw new Error(`Unsupported architecture on Linux: ${arch}`);
274+
}
275+
break;
276+
default:
277+
throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`);
278+
}
279+
if (!nativeBinding) {
280+
if (loadError) {
281+
throw loadError;
282+
}
283+
throw new Error(`Failed to load native binding`);
284+
}
285+
var { run } = nativeBinding;
286+
module2.exports.run = run;
287+
});
288+
289+
// bin.ts
290+
var { run } = require_bum();
291+
var args = process.argv.slice(2);
292+
try {
293+
run(args);
294+
} catch (e) {
295+
console.error(e);
296+
process.exit(1);
297+
}

0 commit comments

Comments
 (0)