1 #!/usr/bin/env node
2
3 const fs = require("fs");
4 const path = require("path");
5
6 const [packageName, version, operatingSystem, architecture, description] = process.argv.slice(2);
7
8 if (!packageName || !version || !operatingSystem || !architecture) {
9 throw new Error(
10 "Usage: render-platform-package.cjs <package-name> <version> <os> <arch> [description]"
11 );
12 }
13
14 const packageDirectory = path.resolve(__dirname, "..", packageName);
15
16 fs.mkdirSync(packageDirectory, { recursive: true });
17
18 const packageJson = {
19 name: `@smbcloud/${packageName}`,
20 version,
21 description: description || "Platform binary for the smbCloud CLI.",
22 license: "Apache-2.0",
23 repository: {
24 type: "git",
25 url: "git+https://github.com/smbcloudXYZ/smbcloud-cli.git",
26 },
27 keywords: [
28 packageName,
29 "cli",
30 "binary",
31 "node",
32 "nodejs",
33 "npm",
34 "package",
35 "smbcloud",
36 ],
37 os: [operatingSystem],
38 cpu: [architecture],
39 files: ["bin"],
40 };
41
42 const readme = `# ${packageName}
43
44 Not meant to be used directly. Please see [@smbcloud/cli](https://www.npmjs.com/package/@smbcloud/cli).
45 `;
46
47 fs.writeFileSync(
48 path.join(packageDirectory, "package.json"),
49 `${JSON.stringify(packageJson, null, 2)}
50 `
51 );
52 fs.writeFileSync(path.join(packageDirectory, "README.md"), readme);