@ozyman42/ozy-cli 0.4.3 → 0.4.5-darwin-x64.0

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.
Binary file
package/package.json CHANGED
@@ -1,47 +1,23 @@
1
1
  {
2
2
  "name": "@ozyman42/ozy-cli",
3
- "version": "0.4.3",
4
- "description": "Ozymandias' personal tools",
3
+ "version": "0.4.5-darwin-x64.0",
5
4
  "type": "module",
6
- "bin": {
7
- "ozy": "dist/ozy",
8
- "ozy-signing-agent": "dist/ozy-signing-agent",
9
- "ozy-virtual-security-key": "dist/ozy-virtual-security-key",
10
- "ozy-ssh-keygen": "dist/ozy-ssh-keygen"
11
- },
5
+ "os": [
6
+ "darwin"
7
+ ],
8
+ "cpu": [
9
+ "x64"
10
+ ],
12
11
  "files": [
13
- "dist"
12
+ "multi-call-binary"
14
13
  ],
15
- "scripts": {
16
- "build": "bun src/scripts/kill-existing-agent.ts && bun src/scripts/build.ts",
17
- "prepublishOnly": "bun run build",
18
- "prepare": "[ \"$CI\" = \"true\" ] || lefthook install"
19
- },
20
- "publishConfig": {
21
- "access": "public",
22
- "provenance": true
23
- },
24
- "devDependencies": {
25
- "@types/bs58": "^5.0.0",
26
- "@types/bun": "^1.3.14",
27
- "@types/expand-tilde": "^2.0.2",
28
- "lefthook": "latest"
29
- },
14
+ "description": "Ozymandias' personal tools",
30
15
  "repository": {
31
16
  "type": "git",
32
17
  "url": "git+https://github.com/ozyman42/ozy-cli.git"
33
18
  },
34
- "dependencies": {
35
- "@effect/platform-bun": "^4.0.0-beta.70",
36
- "@ozyman42/interactive-cli-select": "^0.2.0",
37
- "bip39": "^3.1.0",
38
- "bs58": "^6.0.0",
39
- "commander": "^13.1.0",
40
- "effect": "4.0.0-beta.70",
41
- "effective-modules": "0.3.1-effect4",
42
- "expand-tilde": "^2.0.2",
43
- "friendly-words": "^1.3.1",
44
- "ssh-config": "^5.0.3",
45
- "zod": "^3.24.2"
19
+ "publishConfig": {
20
+ "access": "public",
21
+ "provenance": true
46
22
  }
47
23
  }
package/README.md DELETED
@@ -1,22 +0,0 @@
1
- If you need to generate a new private ssh key run
2
-
3
- `ssh-keygen -t ed25519 -C "your_email@example.com"`
4
-
5
- then add the pubkey as both an AuthN and signing key at https://github.com/settings/keys
6
-
7
-
8
-
9
- When ready update pipeline to include
10
-
11
- - platform: darwin-arm64
12
- runner: macos-latest
13
- - platform: darwin-x64
14
- runner: macos-latest
15
- - platform: linux-x64
16
- runner: ubuntu-latest
17
- - platform: linux-arm64
18
- runner: ubuntu-24.04-arm
19
- - platform: windows-x64
20
- runner: windows-latest
21
- - platform: base-package
22
- runner: ubuntu-latest
package/dist/ozy DELETED
@@ -1,113 +0,0 @@
1
- #!/usr/bin/env node
2
- import { spawnSync } from 'child_process';
3
- import { writeFileSync, chmodSync } from 'fs';
4
- import { dirname, join } from 'path';
5
- import { gunzipSync } from 'zlib';
6
-
7
- function parseTar(buf) {
8
- const entries = new Map();
9
- let offset = 0;
10
- while (offset + 512 <= buf.length) {
11
- const header = buf.subarray(offset, offset + 512);
12
- if (header.every((b) => b === 0)) break;
13
- const name = header.subarray(0, 100).toString('utf8').replace(/\0.*$/, '');
14
- const sizeStr = header.subarray(124, 136).toString('utf8').replace(/\0.*$/, '').trim();
15
- const size = parseInt(sizeStr, 8) || 0;
16
- const typeflag = String.fromCharCode(header[156]);
17
- offset += 512;
18
- if ((typeflag === '0' || typeflag === '\0') && name) {
19
- entries.set(name, buf.subarray(offset, offset + size));
20
- }
21
- offset += Math.ceil(size / 512) * 512;
22
- }
23
- return entries;
24
- }
25
-
26
- const SELF = process.argv[1];
27
- const INSTALL_DIR = dirname(SELF);
28
- const CMD = 'ozy';
29
- const ALL_CMDS = ["ozy","ozy-signing-agent","ozy-ssh-keygen","ozy-virtual-security-key"];
30
- const PKG_NAME = '@ozyman42/ozy-cli';
31
- const PKG_VERSION = '0.4.3';
32
-
33
- function log(msg) { process.stderr.write(`${msg}\n`); }
34
-
35
- // process.platform: 'aix'|'android'|'darwin'|'freebsd'|'haiku'|'linux'|'openbsd'|'sunos'|'win32'
36
- // process.arch: 'arm'|'arm64'|'ia32'|'loong64'|'mips'|'mipsel'|'ppc64'|'riscv64'|'s390'|'s390x'|'x64'
37
- const PLATFORM_MAP = {
38
- 'darwin-arm64': 'darwin-arm64',
39
- 'darwin-x64': 'darwin-x64',
40
- 'linux-arm64': 'linux-arm64',
41
- 'linux-x64': 'linux-x64',
42
- 'win32-x64': 'windows-x64',
43
- };
44
-
45
- const rawKey = `${process.platform}-${process.arch}`;
46
- const platformKey = PLATFORM_MAP[rawKey];
47
- if (!platformKey) {
48
- log(`unsupported platform: "${rawKey}"`);
49
- process.exit(1);
50
- }
51
-
52
- const pkgBaseName = PKG_NAME.split('/').pop();
53
- const platformVersion = `${PKG_VERSION}-${platformKey}.0`;
54
- const tarballUrl = `https://registry.npmjs.org/${PKG_NAME}/-/${pkgBaseName}-${platformVersion}.tgz`;
55
- const isWindows = platformKey.startsWith('windows-');
56
-
57
- log(`Fetching all ${platformKey} platform binaries (${ALL_CMDS.join(", ")})\nfrom ${tarballUrl}`);
58
-
59
- try {
60
- const response = await fetch(tarballUrl);
61
- if (!response.ok) {
62
- log(`fetch failed: ${response.status} ${response.statusText}`);
63
- process.exit(1);
64
- }
65
- const contentLength = parseInt(response.headers.get('content-length') || '0', 10);
66
- const reader = response.body.getReader();
67
- const chunks = [];
68
- let downloaded = 0;
69
- const totalMb = (contentLength / 1024 / 1024).toFixed(1);
70
- function clearLine() {
71
- process.stderr.write(`\r `);
72
- }
73
- while (true) {
74
- const { done, value } = await reader.read();
75
- if (done) break;
76
- chunks.push(value);
77
- downloaded += value.length;
78
- const mb = (downloaded / 1024 / 1024).toFixed(1);
79
- if (contentLength) {
80
- const pct = Math.round(downloaded / contentLength * 100);
81
- clearLine();
82
- process.stderr.write(`\rdownloading... ${pct.toString().padStart(3, " ")}% (${mb}MB/${totalMb}MB)`);
83
- } else {
84
- clearLine();
85
- process.stderr.write(`\rdownloading... ${mb}MB`);
86
- }
87
- }
88
- clearLine();
89
- process.stderr.write(`\rdownloading... 100% (${totalMb}MB)`);
90
- process.stderr.write('\n');
91
- const buffer = Buffer.concat(chunks.map(c => Buffer.from(c)));
92
-
93
- const entries = parseTar(gunzipSync(buffer));
94
- for (const c of ALL_CMDS) {
95
- // tar entry names always use forward slashes, regardless of host OS
96
- const tarPath = 'package/dist/' + c + (isWindows ? '.exe' : '');
97
- const content = entries.get(tarPath);
98
- if (!content) {
99
- log(`missing ${tarPath} in downloaded archive`);
100
- process.exit(1);
101
- }
102
- const dest = join(INSTALL_DIR, c + (isWindows ? '.exe' : ''));
103
- writeFileSync(dest, content);
104
- chmodSync(dest, 0o755);
105
- }
106
- process.stderr.write(`Installed ${ALL_CMDS.join(', ')}\n`);
107
- const result = spawnSync(SELF, process.argv.slice(2), { stdio: 'inherit' });
108
- const errStr = result.error ? ` error=${result.error.message}` : '';
109
- process.exit(result.status !== null ? result.status : 1);
110
- } catch (err) {
111
- log(`error: ${err.message}`);
112
- process.exit(1);
113
- }
@@ -1,113 +0,0 @@
1
- #!/usr/bin/env node
2
- import { spawnSync } from 'child_process';
3
- import { writeFileSync, chmodSync } from 'fs';
4
- import { dirname, join } from 'path';
5
- import { gunzipSync } from 'zlib';
6
-
7
- function parseTar(buf) {
8
- const entries = new Map();
9
- let offset = 0;
10
- while (offset + 512 <= buf.length) {
11
- const header = buf.subarray(offset, offset + 512);
12
- if (header.every((b) => b === 0)) break;
13
- const name = header.subarray(0, 100).toString('utf8').replace(/\0.*$/, '');
14
- const sizeStr = header.subarray(124, 136).toString('utf8').replace(/\0.*$/, '').trim();
15
- const size = parseInt(sizeStr, 8) || 0;
16
- const typeflag = String.fromCharCode(header[156]);
17
- offset += 512;
18
- if ((typeflag === '0' || typeflag === '\0') && name) {
19
- entries.set(name, buf.subarray(offset, offset + size));
20
- }
21
- offset += Math.ceil(size / 512) * 512;
22
- }
23
- return entries;
24
- }
25
-
26
- const SELF = process.argv[1];
27
- const INSTALL_DIR = dirname(SELF);
28
- const CMD = 'ozy-signing-agent';
29
- const ALL_CMDS = ["ozy","ozy-signing-agent","ozy-ssh-keygen","ozy-virtual-security-key"];
30
- const PKG_NAME = '@ozyman42/ozy-cli';
31
- const PKG_VERSION = '0.4.3';
32
-
33
- function log(msg) { process.stderr.write(`${msg}\n`); }
34
-
35
- // process.platform: 'aix'|'android'|'darwin'|'freebsd'|'haiku'|'linux'|'openbsd'|'sunos'|'win32'
36
- // process.arch: 'arm'|'arm64'|'ia32'|'loong64'|'mips'|'mipsel'|'ppc64'|'riscv64'|'s390'|'s390x'|'x64'
37
- const PLATFORM_MAP = {
38
- 'darwin-arm64': 'darwin-arm64',
39
- 'darwin-x64': 'darwin-x64',
40
- 'linux-arm64': 'linux-arm64',
41
- 'linux-x64': 'linux-x64',
42
- 'win32-x64': 'windows-x64',
43
- };
44
-
45
- const rawKey = `${process.platform}-${process.arch}`;
46
- const platformKey = PLATFORM_MAP[rawKey];
47
- if (!platformKey) {
48
- log(`unsupported platform: "${rawKey}"`);
49
- process.exit(1);
50
- }
51
-
52
- const pkgBaseName = PKG_NAME.split('/').pop();
53
- const platformVersion = `${PKG_VERSION}-${platformKey}.0`;
54
- const tarballUrl = `https://registry.npmjs.org/${PKG_NAME}/-/${pkgBaseName}-${platformVersion}.tgz`;
55
- const isWindows = platformKey.startsWith('windows-');
56
-
57
- log(`Fetching all ${platformKey} platform binaries (${ALL_CMDS.join(", ")})\nfrom ${tarballUrl}`);
58
-
59
- try {
60
- const response = await fetch(tarballUrl);
61
- if (!response.ok) {
62
- log(`fetch failed: ${response.status} ${response.statusText}`);
63
- process.exit(1);
64
- }
65
- const contentLength = parseInt(response.headers.get('content-length') || '0', 10);
66
- const reader = response.body.getReader();
67
- const chunks = [];
68
- let downloaded = 0;
69
- const totalMb = (contentLength / 1024 / 1024).toFixed(1);
70
- function clearLine() {
71
- process.stderr.write(`\r `);
72
- }
73
- while (true) {
74
- const { done, value } = await reader.read();
75
- if (done) break;
76
- chunks.push(value);
77
- downloaded += value.length;
78
- const mb = (downloaded / 1024 / 1024).toFixed(1);
79
- if (contentLength) {
80
- const pct = Math.round(downloaded / contentLength * 100);
81
- clearLine();
82
- process.stderr.write(`\rdownloading... ${pct.toString().padStart(3, " ")}% (${mb}MB/${totalMb}MB)`);
83
- } else {
84
- clearLine();
85
- process.stderr.write(`\rdownloading... ${mb}MB`);
86
- }
87
- }
88
- clearLine();
89
- process.stderr.write(`\rdownloading... 100% (${totalMb}MB)`);
90
- process.stderr.write('\n');
91
- const buffer = Buffer.concat(chunks.map(c => Buffer.from(c)));
92
-
93
- const entries = parseTar(gunzipSync(buffer));
94
- for (const c of ALL_CMDS) {
95
- // tar entry names always use forward slashes, regardless of host OS
96
- const tarPath = 'package/dist/' + c + (isWindows ? '.exe' : '');
97
- const content = entries.get(tarPath);
98
- if (!content) {
99
- log(`missing ${tarPath} in downloaded archive`);
100
- process.exit(1);
101
- }
102
- const dest = join(INSTALL_DIR, c + (isWindows ? '.exe' : ''));
103
- writeFileSync(dest, content);
104
- chmodSync(dest, 0o755);
105
- }
106
- process.stderr.write(`Installed ${ALL_CMDS.join(', ')}\n`);
107
- const result = spawnSync(SELF, process.argv.slice(2), { stdio: 'inherit' });
108
- const errStr = result.error ? ` error=${result.error.message}` : '';
109
- process.exit(result.status !== null ? result.status : 1);
110
- } catch (err) {
111
- log(`error: ${err.message}`);
112
- process.exit(1);
113
- }
@@ -1,113 +0,0 @@
1
- #!/usr/bin/env node
2
- import { spawnSync } from 'child_process';
3
- import { writeFileSync, chmodSync } from 'fs';
4
- import { dirname, join } from 'path';
5
- import { gunzipSync } from 'zlib';
6
-
7
- function parseTar(buf) {
8
- const entries = new Map();
9
- let offset = 0;
10
- while (offset + 512 <= buf.length) {
11
- const header = buf.subarray(offset, offset + 512);
12
- if (header.every((b) => b === 0)) break;
13
- const name = header.subarray(0, 100).toString('utf8').replace(/\0.*$/, '');
14
- const sizeStr = header.subarray(124, 136).toString('utf8').replace(/\0.*$/, '').trim();
15
- const size = parseInt(sizeStr, 8) || 0;
16
- const typeflag = String.fromCharCode(header[156]);
17
- offset += 512;
18
- if ((typeflag === '0' || typeflag === '\0') && name) {
19
- entries.set(name, buf.subarray(offset, offset + size));
20
- }
21
- offset += Math.ceil(size / 512) * 512;
22
- }
23
- return entries;
24
- }
25
-
26
- const SELF = process.argv[1];
27
- const INSTALL_DIR = dirname(SELF);
28
- const CMD = 'ozy-ssh-keygen';
29
- const ALL_CMDS = ["ozy","ozy-signing-agent","ozy-ssh-keygen","ozy-virtual-security-key"];
30
- const PKG_NAME = '@ozyman42/ozy-cli';
31
- const PKG_VERSION = '0.4.3';
32
-
33
- function log(msg) { process.stderr.write(`${msg}\n`); }
34
-
35
- // process.platform: 'aix'|'android'|'darwin'|'freebsd'|'haiku'|'linux'|'openbsd'|'sunos'|'win32'
36
- // process.arch: 'arm'|'arm64'|'ia32'|'loong64'|'mips'|'mipsel'|'ppc64'|'riscv64'|'s390'|'s390x'|'x64'
37
- const PLATFORM_MAP = {
38
- 'darwin-arm64': 'darwin-arm64',
39
- 'darwin-x64': 'darwin-x64',
40
- 'linux-arm64': 'linux-arm64',
41
- 'linux-x64': 'linux-x64',
42
- 'win32-x64': 'windows-x64',
43
- };
44
-
45
- const rawKey = `${process.platform}-${process.arch}`;
46
- const platformKey = PLATFORM_MAP[rawKey];
47
- if (!platformKey) {
48
- log(`unsupported platform: "${rawKey}"`);
49
- process.exit(1);
50
- }
51
-
52
- const pkgBaseName = PKG_NAME.split('/').pop();
53
- const platformVersion = `${PKG_VERSION}-${platformKey}.0`;
54
- const tarballUrl = `https://registry.npmjs.org/${PKG_NAME}/-/${pkgBaseName}-${platformVersion}.tgz`;
55
- const isWindows = platformKey.startsWith('windows-');
56
-
57
- log(`Fetching all ${platformKey} platform binaries (${ALL_CMDS.join(", ")})\nfrom ${tarballUrl}`);
58
-
59
- try {
60
- const response = await fetch(tarballUrl);
61
- if (!response.ok) {
62
- log(`fetch failed: ${response.status} ${response.statusText}`);
63
- process.exit(1);
64
- }
65
- const contentLength = parseInt(response.headers.get('content-length') || '0', 10);
66
- const reader = response.body.getReader();
67
- const chunks = [];
68
- let downloaded = 0;
69
- const totalMb = (contentLength / 1024 / 1024).toFixed(1);
70
- function clearLine() {
71
- process.stderr.write(`\r `);
72
- }
73
- while (true) {
74
- const { done, value } = await reader.read();
75
- if (done) break;
76
- chunks.push(value);
77
- downloaded += value.length;
78
- const mb = (downloaded / 1024 / 1024).toFixed(1);
79
- if (contentLength) {
80
- const pct = Math.round(downloaded / contentLength * 100);
81
- clearLine();
82
- process.stderr.write(`\rdownloading... ${pct.toString().padStart(3, " ")}% (${mb}MB/${totalMb}MB)`);
83
- } else {
84
- clearLine();
85
- process.stderr.write(`\rdownloading... ${mb}MB`);
86
- }
87
- }
88
- clearLine();
89
- process.stderr.write(`\rdownloading... 100% (${totalMb}MB)`);
90
- process.stderr.write('\n');
91
- const buffer = Buffer.concat(chunks.map(c => Buffer.from(c)));
92
-
93
- const entries = parseTar(gunzipSync(buffer));
94
- for (const c of ALL_CMDS) {
95
- // tar entry names always use forward slashes, regardless of host OS
96
- const tarPath = 'package/dist/' + c + (isWindows ? '.exe' : '');
97
- const content = entries.get(tarPath);
98
- if (!content) {
99
- log(`missing ${tarPath} in downloaded archive`);
100
- process.exit(1);
101
- }
102
- const dest = join(INSTALL_DIR, c + (isWindows ? '.exe' : ''));
103
- writeFileSync(dest, content);
104
- chmodSync(dest, 0o755);
105
- }
106
- process.stderr.write(`Installed ${ALL_CMDS.join(', ')}\n`);
107
- const result = spawnSync(SELF, process.argv.slice(2), { stdio: 'inherit' });
108
- const errStr = result.error ? ` error=${result.error.message}` : '';
109
- process.exit(result.status !== null ? result.status : 1);
110
- } catch (err) {
111
- log(`error: ${err.message}`);
112
- process.exit(1);
113
- }
@@ -1,113 +0,0 @@
1
- #!/usr/bin/env node
2
- import { spawnSync } from 'child_process';
3
- import { writeFileSync, chmodSync } from 'fs';
4
- import { dirname, join } from 'path';
5
- import { gunzipSync } from 'zlib';
6
-
7
- function parseTar(buf) {
8
- const entries = new Map();
9
- let offset = 0;
10
- while (offset + 512 <= buf.length) {
11
- const header = buf.subarray(offset, offset + 512);
12
- if (header.every((b) => b === 0)) break;
13
- const name = header.subarray(0, 100).toString('utf8').replace(/\0.*$/, '');
14
- const sizeStr = header.subarray(124, 136).toString('utf8').replace(/\0.*$/, '').trim();
15
- const size = parseInt(sizeStr, 8) || 0;
16
- const typeflag = String.fromCharCode(header[156]);
17
- offset += 512;
18
- if ((typeflag === '0' || typeflag === '\0') && name) {
19
- entries.set(name, buf.subarray(offset, offset + size));
20
- }
21
- offset += Math.ceil(size / 512) * 512;
22
- }
23
- return entries;
24
- }
25
-
26
- const SELF = process.argv[1];
27
- const INSTALL_DIR = dirname(SELF);
28
- const CMD = 'ozy-virtual-security-key';
29
- const ALL_CMDS = ["ozy","ozy-signing-agent","ozy-ssh-keygen","ozy-virtual-security-key"];
30
- const PKG_NAME = '@ozyman42/ozy-cli';
31
- const PKG_VERSION = '0.4.3';
32
-
33
- function log(msg) { process.stderr.write(`${msg}\n`); }
34
-
35
- // process.platform: 'aix'|'android'|'darwin'|'freebsd'|'haiku'|'linux'|'openbsd'|'sunos'|'win32'
36
- // process.arch: 'arm'|'arm64'|'ia32'|'loong64'|'mips'|'mipsel'|'ppc64'|'riscv64'|'s390'|'s390x'|'x64'
37
- const PLATFORM_MAP = {
38
- 'darwin-arm64': 'darwin-arm64',
39
- 'darwin-x64': 'darwin-x64',
40
- 'linux-arm64': 'linux-arm64',
41
- 'linux-x64': 'linux-x64',
42
- 'win32-x64': 'windows-x64',
43
- };
44
-
45
- const rawKey = `${process.platform}-${process.arch}`;
46
- const platformKey = PLATFORM_MAP[rawKey];
47
- if (!platformKey) {
48
- log(`unsupported platform: "${rawKey}"`);
49
- process.exit(1);
50
- }
51
-
52
- const pkgBaseName = PKG_NAME.split('/').pop();
53
- const platformVersion = `${PKG_VERSION}-${platformKey}.0`;
54
- const tarballUrl = `https://registry.npmjs.org/${PKG_NAME}/-/${pkgBaseName}-${platformVersion}.tgz`;
55
- const isWindows = platformKey.startsWith('windows-');
56
-
57
- log(`Fetching all ${platformKey} platform binaries (${ALL_CMDS.join(", ")})\nfrom ${tarballUrl}`);
58
-
59
- try {
60
- const response = await fetch(tarballUrl);
61
- if (!response.ok) {
62
- log(`fetch failed: ${response.status} ${response.statusText}`);
63
- process.exit(1);
64
- }
65
- const contentLength = parseInt(response.headers.get('content-length') || '0', 10);
66
- const reader = response.body.getReader();
67
- const chunks = [];
68
- let downloaded = 0;
69
- const totalMb = (contentLength / 1024 / 1024).toFixed(1);
70
- function clearLine() {
71
- process.stderr.write(`\r `);
72
- }
73
- while (true) {
74
- const { done, value } = await reader.read();
75
- if (done) break;
76
- chunks.push(value);
77
- downloaded += value.length;
78
- const mb = (downloaded / 1024 / 1024).toFixed(1);
79
- if (contentLength) {
80
- const pct = Math.round(downloaded / contentLength * 100);
81
- clearLine();
82
- process.stderr.write(`\rdownloading... ${pct.toString().padStart(3, " ")}% (${mb}MB/${totalMb}MB)`);
83
- } else {
84
- clearLine();
85
- process.stderr.write(`\rdownloading... ${mb}MB`);
86
- }
87
- }
88
- clearLine();
89
- process.stderr.write(`\rdownloading... 100% (${totalMb}MB)`);
90
- process.stderr.write('\n');
91
- const buffer = Buffer.concat(chunks.map(c => Buffer.from(c)));
92
-
93
- const entries = parseTar(gunzipSync(buffer));
94
- for (const c of ALL_CMDS) {
95
- // tar entry names always use forward slashes, regardless of host OS
96
- const tarPath = 'package/dist/' + c + (isWindows ? '.exe' : '');
97
- const content = entries.get(tarPath);
98
- if (!content) {
99
- log(`missing ${tarPath} in downloaded archive`);
100
- process.exit(1);
101
- }
102
- const dest = join(INSTALL_DIR, c + (isWindows ? '.exe' : ''));
103
- writeFileSync(dest, content);
104
- chmodSync(dest, 0o755);
105
- }
106
- process.stderr.write(`Installed ${ALL_CMDS.join(', ')}\n`);
107
- const result = spawnSync(SELF, process.argv.slice(2), { stdio: 'inherit' });
108
- const errStr = result.error ? ` error=${result.error.message}` : '';
109
- process.exit(result.status !== null ? result.status : 1);
110
- } catch (err) {
111
- log(`error: ${err.message}`);
112
- process.exit(1);
113
- }