oclif 3.7.3 → 3.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.oclif.manifest.json +1 -1
- package/README.md +0 -1
- package/lib/commands/pack/deb.d.ts +1 -2
- package/lib/commands/pack/deb.js +8 -2
- package/lib/commands/pack/win.d.ts +1 -2
- package/lib/commands/pack/win.js +5 -1
- package/lib/commands/promote.js +10 -1
- package/lib/tarballs/bin.js +13 -10
- package/package.json +6 -2
package/.oclif.manifest.json
CHANGED
package/README.md
CHANGED
|
@@ -6,7 +6,6 @@ oclif: Node.JS Open CLI Framework
|
|
|
6
6
|
=================================
|
|
7
7
|
|
|
8
8
|
[](https://npmjs.org/package/oclif)
|
|
9
|
-
[](https://circleci.com/gh/oclif/oclif/tree/main)
|
|
10
9
|
[](https://npmjs.org/package/@oclif/core)
|
|
11
10
|
[](https://github.com/oclif/oclif/blob/main/package.json)
|
|
12
11
|
|
package/lib/commands/pack/deb.js
CHANGED
|
@@ -31,14 +31,18 @@ export ${config.scopedEnvVarKey('UPDATE_INSTRUCTIONS')}="update with \\"sudo apt
|
|
|
31
31
|
\$DIR/node \$DIR/run "\$@"
|
|
32
32
|
`,
|
|
33
33
|
/* eslint-enable no-useless-escape */
|
|
34
|
-
control: (config, arch) =>
|
|
34
|
+
control: (config, arch) => {
|
|
35
|
+
var _a;
|
|
36
|
+
return `Package: ${config.config.bin}
|
|
35
37
|
Version: ${(0, upload_util_1.debVersion)(config)}
|
|
36
38
|
Section: main
|
|
37
39
|
Priority: standard
|
|
38
40
|
Architecture: ${arch}
|
|
39
41
|
Maintainer: ${config.config.scopedEnvVar('AUTHOR') || config.config.pjson.author}
|
|
40
42
|
Description: ${config.config.pjson.description}
|
|
41
|
-
|
|
43
|
+
Aliases: ${(_a = config.config.binAliases) === null || _a === void 0 ? void 0 : _a.join(', ')}
|
|
44
|
+
`;
|
|
45
|
+
},
|
|
42
46
|
ftparchive: (config) => `
|
|
43
47
|
APT::FTPArchive::Release {
|
|
44
48
|
Origin "${config.scopedEnvVar('AUTHOR') || config.pjson.author}";
|
|
@@ -56,6 +60,7 @@ class PackDeb extends core_1.Command {
|
|
|
56
60
|
const dist = buildConfig.dist('deb');
|
|
57
61
|
await fs.emptyDir(dist);
|
|
58
62
|
const build = async (arch) => {
|
|
63
|
+
var _a;
|
|
59
64
|
this.log(`building debian / ${arch}`);
|
|
60
65
|
const target = { platform: 'linux', arch };
|
|
61
66
|
const versionedDebBase = (0, upload_util_1.templateShortKey)('deb', { bin: config.bin, versionShaRevision: (0, upload_util_1.debVersion)(buildConfig), arch: (0, upload_util_1.debArch)(arch) });
|
|
@@ -73,6 +78,7 @@ class PackDeb extends core_1.Command {
|
|
|
73
78
|
]);
|
|
74
79
|
// symlink usr/bin/oclif points to usr/lib/oclif/bin/oclif
|
|
75
80
|
await exec(`ln -s "${path.join('..', 'lib', config.dirname, 'bin', config.bin)}" "${config.bin}"`, { cwd: path.join(workspace, 'usr', 'bin') });
|
|
81
|
+
(_a = config.binAliases) === null || _a === void 0 ? void 0 : _a.map(alias => exec(`ln -sf "${path.join('..', 'lib', config.dirname, 'bin', config.bin)}" "${alias}"`, { cwd: path.join(workspace, 'usr', 'bin') }));
|
|
76
82
|
await exec(`sudo chown -R root "${workspace}"`);
|
|
77
83
|
await exec(`sudo chgrp -R root "${workspace}"`);
|
|
78
84
|
await exec(`dpkg --build "${workspace}" "${path.join(dist, versionedDebBase)}"`);
|
package/lib/commands/pack/win.js
CHANGED
|
@@ -213,7 +213,11 @@ class PackWin extends core_1.Command {
|
|
|
213
213
|
fs.writeFile(path.join(installerBase, 'bin', `${config.bin}.cmd`), scripts.cmd(config)),
|
|
214
214
|
fs.writeFile(path.join(installerBase, 'bin', `${config.bin}`), scripts.sh(config)),
|
|
215
215
|
fs.writeFile(path.join(installerBase, `${config.bin}.nsi`), scripts.nsis(config, arch)),
|
|
216
|
-
].concat(
|
|
216
|
+
].concat(config.binAliases ? config.binAliases.flatMap(alias =>
|
|
217
|
+
// write duplicate files for windows aliases
|
|
218
|
+
// this avoids mklink which can require admin privileges which not everyone has
|
|
219
|
+
[fs.writeFile(path.join(installerBase, 'bin', `${alias}.cmd`), scripts.cmd(config)), fs.writeFile(path.join(installerBase, 'bin', `${alias}`), scripts.sh(config))]) : [])
|
|
220
|
+
.concat(flags['additional-cli'] ? [
|
|
217
221
|
fs.writeFile(path.join(installerBase, 'bin', `${flags['additional-cli']}.cmd`), scripts.cmd(config, flags['additional-cli'])),
|
|
218
222
|
fs.writeFile(path.join(installerBase, 'bin', `${flags['additional-cli']}`), scripts.sh({ bin: flags['additional-cli'] })),
|
|
219
223
|
] : []));
|
package/lib/commands/promote.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const path = require("path");
|
|
4
4
|
const _ = require("lodash");
|
|
5
5
|
const core_1 = require("@oclif/core");
|
|
6
|
+
const semver_1 = require("semver");
|
|
6
7
|
const aws_1 = require("../aws");
|
|
7
8
|
const Tarballs = require("../tarballs");
|
|
8
9
|
const upload_util_1 = require("../upload-util");
|
|
@@ -99,7 +100,6 @@ class Promote extends core_1.Command {
|
|
|
99
100
|
// copy debian artifacts
|
|
100
101
|
const debArtifacts = [
|
|
101
102
|
(0, upload_util_1.templateShortKey)('deb', { bin: config.bin, versionShaRevision: (0, upload_util_1.debVersion)(buildConfig), arch: 'amd64' }),
|
|
102
|
-
(0, upload_util_1.templateShortKey)('deb', { bin: config.bin, versionShaRevision: (0, upload_util_1.debVersion)(buildConfig), arch: 'i386' }),
|
|
103
103
|
'Packages.gz',
|
|
104
104
|
'Packages.xz',
|
|
105
105
|
'Packages.bz2',
|
|
@@ -107,6 +107,15 @@ class Promote extends core_1.Command {
|
|
|
107
107
|
'InRelease',
|
|
108
108
|
'Release.gpg',
|
|
109
109
|
];
|
|
110
|
+
// start
|
|
111
|
+
// TODO: remove in next major release
|
|
112
|
+
// node dropped 32-bit support for linux a long time ago, see:
|
|
113
|
+
// https://github.com/oclif/oclif/issues/770#issuecomment-1508719530
|
|
114
|
+
const arches = buildConfig.targets.filter(t => t.platform === 'linux');
|
|
115
|
+
if (arches.find(a => a.arch.includes('x86')) && (0, semver_1.lte)(buildConfig.nodeVersion, '9.11.2')) {
|
|
116
|
+
debArtifacts.push((0, upload_util_1.templateShortKey)('deb', { bin: config.bin, versionShaRevision: (0, upload_util_1.debVersion)(buildConfig), arch: 'i386' }));
|
|
117
|
+
}
|
|
118
|
+
// end
|
|
110
119
|
this.log(`Promoting debian artifacts to ${flags.channel}`);
|
|
111
120
|
await Promise.all(debArtifacts.flatMap(artifact => {
|
|
112
121
|
const debCopySource = cloudBucketCommitKey(`apt/${artifact}`);
|
package/lib/tarballs/bin.js
CHANGED
|
@@ -3,13 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.writeBinScripts = void 0;
|
|
4
4
|
const fs = require("fs");
|
|
5
5
|
const path = require("path");
|
|
6
|
+
const node_child_process_1 = require("node:child_process");
|
|
7
|
+
const node_util_1 = require("node:util");
|
|
8
|
+
const exec = (0, node_util_1.promisify)(node_child_process_1.exec);
|
|
6
9
|
async function writeBinScripts({ config, baseWorkspace, nodeVersion }) {
|
|
10
|
+
var _a, _b;
|
|
7
11
|
const binPathEnvVar = config.scopedEnvVarKey('BINPATH');
|
|
8
12
|
const redirectedEnvVar = config.scopedEnvVarKey('REDIRECTED');
|
|
9
13
|
const clientHomeEnvVar = config.scopedEnvVarKey('OCLIF_CLIENT_HOME');
|
|
10
|
-
const writeWin32 = async () => {
|
|
11
|
-
|
|
12
|
-
await fs.promises.writeFile(path.join(baseWorkspace, 'bin', `${config.bin}.cmd`), `@echo off
|
|
14
|
+
const writeWin32 = async (bin) => {
|
|
15
|
+
await fs.promises.writeFile(path.join(baseWorkspace, 'bin', `${bin}.cmd`), `@echo off
|
|
13
16
|
setlocal enableextensions
|
|
14
17
|
|
|
15
18
|
if not "%${redirectedEnvVar}%"=="1" if exist "%LOCALAPPDATA%\\${bin}\\client\\bin\\${bin}.cmd" (
|
|
@@ -27,12 +30,6 @@ if exist "%~dp0..\\bin\\node.exe" (
|
|
|
27
30
|
node "%~dp0..\\bin\\run" %*
|
|
28
31
|
)
|
|
29
32
|
`);
|
|
30
|
-
// await qq.write([output, 'bin', config.bin], `#!/bin/sh
|
|
31
|
-
// basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
|
32
|
-
// "$basedir/../client/bin/${config.bin}.cmd" "$@"
|
|
33
|
-
// ret=$?
|
|
34
|
-
// exit $ret
|
|
35
|
-
// `)
|
|
36
33
|
};
|
|
37
34
|
const writeUnix = async () => {
|
|
38
35
|
const bin = path.join(baseWorkspace, 'bin', config.bin);
|
|
@@ -83,6 +80,12 @@ else
|
|
|
83
80
|
fi
|
|
84
81
|
`, { mode: 0o755 });
|
|
85
82
|
};
|
|
86
|
-
await Promise.all([
|
|
83
|
+
await Promise.all([
|
|
84
|
+
writeWin32(config.bin),
|
|
85
|
+
writeUnix(),
|
|
86
|
+
...(_b = (_a = config.binAliases) === null || _a === void 0 ? void 0 : _a.map(alias => process.platform === 'win32' ?
|
|
87
|
+
writeWin32(alias) :
|
|
88
|
+
exec(`ln -sf ${config.bin} ${alias}`, { cwd: path.join(baseWorkspace, 'bin') }))) !== null && _b !== void 0 ? _b : [],
|
|
89
|
+
]);
|
|
87
90
|
}
|
|
88
91
|
exports.writeBinScripts = writeBinScripts;
|
package/package.json
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oclif",
|
|
3
3
|
"description": "oclif: create your own CLI",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.8.1",
|
|
5
5
|
"author": "Salesforce",
|
|
6
6
|
"bin": {
|
|
7
|
-
"oclif": "bin/run"
|
|
7
|
+
"oclif": "bin/run",
|
|
8
|
+
"oclif2": "bin/run"
|
|
8
9
|
},
|
|
9
10
|
"bugs": "https://github.com/oclif/oclif/issues",
|
|
10
11
|
"dependencies": {
|
|
@@ -91,6 +92,9 @@
|
|
|
91
92
|
"@oclif/plugin-not-found"
|
|
92
93
|
],
|
|
93
94
|
"bin": "oclif",
|
|
95
|
+
"binAliases": [
|
|
96
|
+
"oclif2"
|
|
97
|
+
],
|
|
94
98
|
"dirname": "oclif",
|
|
95
99
|
"topicSeparator": " ",
|
|
96
100
|
"macos": {
|