@platforma-sdk/bootstrap 1.19.3
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/assets/compose-fs.yaml +68 -0
- package/assets/compose-minio.yaml +25 -0
- package/assets/compose-s3.yaml +95 -0
- package/assets/users.htpasswd +3 -0
- package/bin/run.cmd +3 -0
- package/bin/run.js +7 -0
- package/dist/block.d.ts +19 -0
- package/dist/block.js +89 -0
- package/dist/block.js.map +1 -0
- package/dist/cmd-opts.d.ts +64 -0
- package/dist/cmd-opts.js +121 -0
- package/dist/cmd-opts.js.map +1 -0
- package/dist/commands/create-block.d.ts +9 -0
- package/dist/commands/create-block.js +43 -0
- package/dist/commands/create-block.js.map +1 -0
- package/dist/commands/reset.d.ts +9 -0
- package/dist/commands/reset.js +47 -0
- package/dist/commands/reset.js.map +1 -0
- package/dist/commands/start/docker/fs.d.ts +19 -0
- package/dist/commands/start/docker/fs.js +71 -0
- package/dist/commands/start/docker/fs.js.map +1 -0
- package/dist/commands/start/docker/s3.d.ts +19 -0
- package/dist/commands/start/docker/s3.js +69 -0
- package/dist/commands/start/docker/s3.js.map +1 -0
- package/dist/commands/start/local/fs.d.ts +24 -0
- package/dist/commands/start/local/fs.js +98 -0
- package/dist/commands/start/local/fs.js.map +1 -0
- package/dist/commands/start/local/s3.d.ts +25 -0
- package/dist/commands/start/local/s3.js +100 -0
- package/dist/commands/start/local/s3.js.map +1 -0
- package/dist/commands/start.d.ts +9 -0
- package/dist/commands/start.js +47 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/stop.d.ts +9 -0
- package/dist/commands/stop.js +47 -0
- package/dist/commands/stop.js.map +1 -0
- package/dist/core.d.ts +70 -0
- package/dist/core.js +523 -0
- package/dist/core.js.map +1 -0
- package/dist/package.d.ts +11 -0
- package/dist/package.js +52 -0
- package/dist/package.js.map +1 -0
- package/dist/platforma.d.ts +23 -0
- package/dist/platforma.js +172 -0
- package/dist/platforma.js.map +1 -0
- package/dist/run.d.ts +6 -0
- package/dist/run.js +88 -0
- package/dist/run.js.map +1 -0
- package/dist/state.d.ts +38 -0
- package/dist/state.js +86 -0
- package/dist/state.js.map +1 -0
- package/dist/templates/pl-config.d.ts +5 -0
- package/dist/templates/pl-config.js +239 -0
- package/dist/templates/pl-config.js.map +1 -0
- package/dist/templates/types.d.ts +128 -0
- package/dist/templates/types.js +30 -0
- package/dist/templates/types.js.map +1 -0
- package/dist/util.d.ts +6 -0
- package/dist/util.js +54 -0
- package/dist/util.js.map +1 -0
- package/package.json +50 -0
package/dist/package.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.path = path;
|
|
7
|
+
exports.dist = dist;
|
|
8
|
+
exports.assets = assets;
|
|
9
|
+
exports.binaries = binaries;
|
|
10
|
+
exports.composeFiles = composeFiles;
|
|
11
|
+
exports.readFileSync = readFileSync;
|
|
12
|
+
exports.getPackageJson = getPackageJson;
|
|
13
|
+
exports.plImageTag = plImageTag;
|
|
14
|
+
const path_1 = require("path");
|
|
15
|
+
const fs_1 = __importDefault(require("fs"));
|
|
16
|
+
function path(...p) {
|
|
17
|
+
return (0, path_1.resolve)(__dirname, '..', ...p);
|
|
18
|
+
}
|
|
19
|
+
function dist(...p) {
|
|
20
|
+
return path('dist', ...p);
|
|
21
|
+
}
|
|
22
|
+
function assets(...p) {
|
|
23
|
+
return path('assets', ...p);
|
|
24
|
+
}
|
|
25
|
+
function binaries(...p) {
|
|
26
|
+
return path('binaries', ...p);
|
|
27
|
+
}
|
|
28
|
+
function composeFiles() {
|
|
29
|
+
const dockerDirEntries = fs_1.default.readdirSync(assets());
|
|
30
|
+
return dockerDirEntries
|
|
31
|
+
.filter((entry) => {
|
|
32
|
+
return entry.startsWith('compose-') && entry.endsWith('.yaml');
|
|
33
|
+
})
|
|
34
|
+
.map((value) => assets(value));
|
|
35
|
+
}
|
|
36
|
+
function readFileSync(...p) {
|
|
37
|
+
return fs_1.default.readFileSync(path(...p));
|
|
38
|
+
}
|
|
39
|
+
var _packageJson;
|
|
40
|
+
function getPackageJson() {
|
|
41
|
+
if (!_packageJson) {
|
|
42
|
+
_packageJson = JSON.parse(readFileSync('package.json').toString());
|
|
43
|
+
}
|
|
44
|
+
return _packageJson;
|
|
45
|
+
}
|
|
46
|
+
function plImageTag(version) {
|
|
47
|
+
if (!version) {
|
|
48
|
+
version = getPackageJson()['pl-version'];
|
|
49
|
+
}
|
|
50
|
+
return `quay.io/milaboratories/platforma:${version}`;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.js","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":";;;;;AAIA,oBAEC;AAED,oBAEC;AAED,wBAEC;AAED,4BAEC;AAED,oCAOC;AAED,oCAEC;AAQD,wCAMC;AAED,gCAMC;AArDD,+BAAqC;AACrC,4CAAoB;AAGpB,SAAgB,IAAI,CAAC,GAAG,CAAW;IACjC,OAAO,IAAA,cAAO,EAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,IAAI,CAAC,GAAG,CAAW;IACjC,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,SAAgB,MAAM,CAAC,GAAG,CAAW;IACnC,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,SAAgB,QAAQ,CAAC,GAAG,CAAW;IACrC,OAAO,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,SAAgB,YAAY;IAC1B,MAAM,gBAAgB,GAAG,YAAE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,OAAO,gBAAgB;SACpB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAChB,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,YAAY,CAAC,GAAG,CAAW;IACzC,OAAO,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAMD,IAAI,YAAyB,CAAC;AAE9B,SAAgB,cAAc;IAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAgB,UAAU,CAAC,OAAgB;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,cAAc,EAAE,CAAC,YAAY,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,oCAAoC,OAAO,EAAE,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import winston from 'winston';
|
|
2
|
+
export declare const OSes: readonly ["linux", "macos", "windows"];
|
|
3
|
+
export type OSType = (typeof OSes)[number];
|
|
4
|
+
export declare function archiveOS(osName?: string): OSType;
|
|
5
|
+
export declare const Arches: readonly ["amd64", "arm64"];
|
|
6
|
+
export type ArchType = (typeof Arches)[number];
|
|
7
|
+
export declare function archiveArch(archName?: string): ArchType;
|
|
8
|
+
export declare function downloadArchive(logger: winston.Logger, options?: {
|
|
9
|
+
version?: string;
|
|
10
|
+
showProgress?: boolean;
|
|
11
|
+
downloadURL?: string;
|
|
12
|
+
saveTo?: string;
|
|
13
|
+
}): Promise<string>;
|
|
14
|
+
export declare function extractArchive(logger: winston.Logger, options?: {
|
|
15
|
+
version?: string;
|
|
16
|
+
archivePath?: string;
|
|
17
|
+
extractTo?: string;
|
|
18
|
+
}): string;
|
|
19
|
+
export declare function getBinary(logger: winston.Logger, options?: {
|
|
20
|
+
version?: string;
|
|
21
|
+
showProgress?: boolean;
|
|
22
|
+
}): Promise<string>;
|
|
23
|
+
export declare function binaryPath(version?: string, ...p: string[]): string;
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.Arches = exports.OSes = void 0;
|
|
30
|
+
exports.archiveOS = archiveOS;
|
|
31
|
+
exports.archiveArch = archiveArch;
|
|
32
|
+
exports.downloadArchive = downloadArchive;
|
|
33
|
+
exports.extractArchive = extractArchive;
|
|
34
|
+
exports.getBinary = getBinary;
|
|
35
|
+
exports.binaryPath = binaryPath;
|
|
36
|
+
const os_1 = __importDefault(require("os"));
|
|
37
|
+
const fs_1 = __importDefault(require("fs"));
|
|
38
|
+
const https_1 = __importDefault(require("https"));
|
|
39
|
+
const tar = __importStar(require("tar"));
|
|
40
|
+
const pkg = __importStar(require("./package"));
|
|
41
|
+
const path_1 = __importDefault(require("path"));
|
|
42
|
+
exports.OSes = ['linux', 'macos', 'windows'];
|
|
43
|
+
function archiveOS(osName) {
|
|
44
|
+
const platform = osName ?? os_1.default.platform();
|
|
45
|
+
switch (platform) {
|
|
46
|
+
case 'darwin':
|
|
47
|
+
return 'macos';
|
|
48
|
+
case 'linux':
|
|
49
|
+
return 'linux';
|
|
50
|
+
case 'win32':
|
|
51
|
+
return 'windows';
|
|
52
|
+
default:
|
|
53
|
+
throw new Error(`operating system '${platform}' is not currently supported by Platforma ecosystem. The list of OSes supported: ` +
|
|
54
|
+
JSON.stringify(exports.OSes));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.Arches = ['amd64', 'arm64'];
|
|
58
|
+
function archiveArch(archName) {
|
|
59
|
+
const arch = archName ?? os_1.default.arch();
|
|
60
|
+
switch (arch) {
|
|
61
|
+
case 'arm64':
|
|
62
|
+
return 'arm64';
|
|
63
|
+
case 'x64':
|
|
64
|
+
return 'amd64';
|
|
65
|
+
default:
|
|
66
|
+
throw new Error(`processor architecture '${arch}' is not currently supported by Platforma ecosystem. The list of architectures supported: ` +
|
|
67
|
+
JSON.stringify(exports.Arches));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function downloadArchive(logger, options) {
|
|
71
|
+
const version = options?.version ?? pkg.getPackageJson()['pl-version'];
|
|
72
|
+
const showProgress = options?.showProgress ?? process.stdout.isTTY;
|
|
73
|
+
const archiveName = `pl-${version}-${archiveArch()}.tgz`;
|
|
74
|
+
const downloadURL = options?.downloadURL ?? `https://cdn.platforma.bio/software/pl/${archiveOS()}/${archiveName}`;
|
|
75
|
+
const archiveFilePath = options?.saveTo ?? pkg.binaries(archiveName);
|
|
76
|
+
if (fs_1.default.existsSync(archiveFilePath)) {
|
|
77
|
+
logger.info(`Platforma Backend archive download skipped: '${archiveFilePath}' already exists`);
|
|
78
|
+
return Promise.resolve(archiveFilePath);
|
|
79
|
+
}
|
|
80
|
+
fs_1.default.mkdirSync(path_1.default.dirname(archiveFilePath), { recursive: true });
|
|
81
|
+
logger.info(`Downloading Platforma Backend archive:\n URL: ${downloadURL}\n Save to: ${archiveFilePath}`);
|
|
82
|
+
const request = https_1.default.get(downloadURL);
|
|
83
|
+
return new Promise((resolve, reject) => {
|
|
84
|
+
request.on('response', (response) => {
|
|
85
|
+
if (!response.statusCode) {
|
|
86
|
+
const err = new Error('failed to download archive: no HTTP status code in response from server');
|
|
87
|
+
request.destroy();
|
|
88
|
+
reject(err);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (response.statusCode !== 200) {
|
|
92
|
+
const err = new Error(`failed to download archive: ${response.statusCode} ${response.statusMessage}`);
|
|
93
|
+
request.destroy();
|
|
94
|
+
reject(err);
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const totalBytes = parseInt(response.headers['content-length'] || '0', 10);
|
|
98
|
+
let downloadedBytes = 0;
|
|
99
|
+
const archive = fs_1.default.createWriteStream(archiveFilePath);
|
|
100
|
+
response.pipe(archive);
|
|
101
|
+
response.on('data', (chunk) => {
|
|
102
|
+
downloadedBytes += chunk.length;
|
|
103
|
+
const progress = (downloadedBytes / totalBytes) * 100;
|
|
104
|
+
if (showProgress) {
|
|
105
|
+
process.stdout.write(` downloading: ${progress.toFixed(2)}%\r`);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
response.on('error', (err) => {
|
|
109
|
+
fs_1.default.unlinkSync(archiveFilePath);
|
|
110
|
+
logger.error(`Failed to download Platforma Binary: ${err.message}`);
|
|
111
|
+
request.destroy();
|
|
112
|
+
reject(err);
|
|
113
|
+
});
|
|
114
|
+
archive.on('finish', () => {
|
|
115
|
+
archive.close();
|
|
116
|
+
logger.info(` ... download done.`);
|
|
117
|
+
request.destroy();
|
|
118
|
+
resolve(archiveFilePath);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
function extractArchive(logger, options) {
|
|
124
|
+
logger.debug('extracting archive...');
|
|
125
|
+
const version = options?.version ?? pkg.getPackageJson()['pl-version'];
|
|
126
|
+
logger.debug(` version: '${version}'`);
|
|
127
|
+
const archiveName = `${binaryDirName({ version })}.tgz`;
|
|
128
|
+
const archivePath = options?.archivePath ?? pkg.binaries(archiveName);
|
|
129
|
+
logger.debug(` archive path: '${archivePath}'`);
|
|
130
|
+
const targetDir = options?.extractTo ?? trimExtension(archivePath);
|
|
131
|
+
logger.debug(` target dir: '${targetDir}'`);
|
|
132
|
+
if (fs_1.default.existsSync(targetDir)) {
|
|
133
|
+
logger.info(`Platforma Backend binaries unpack skipped: '${targetDir}' exists`);
|
|
134
|
+
return targetDir;
|
|
135
|
+
}
|
|
136
|
+
if (!fs_1.default.existsSync(archivePath)) {
|
|
137
|
+
const msg = `Platforma Backend binary archive not found at '${archivePath}'`;
|
|
138
|
+
logger.error(msg);
|
|
139
|
+
throw new Error(msg);
|
|
140
|
+
}
|
|
141
|
+
if (!fs_1.default.existsSync(targetDir)) {
|
|
142
|
+
logger.debug(` creating target dir '${targetDir}'`);
|
|
143
|
+
fs_1.default.mkdirSync(targetDir, { recursive: true });
|
|
144
|
+
}
|
|
145
|
+
logger.info(`Unpacking Platforma Backend archive:\n Archive: ${archivePath}\n Target dir: ${targetDir}`);
|
|
146
|
+
tar.x({
|
|
147
|
+
file: archivePath,
|
|
148
|
+
cwd: targetDir,
|
|
149
|
+
gzip: true,
|
|
150
|
+
sync: true
|
|
151
|
+
});
|
|
152
|
+
logger.info(` ... unpack done.`);
|
|
153
|
+
return targetDir;
|
|
154
|
+
}
|
|
155
|
+
function getBinary(logger, options) {
|
|
156
|
+
return downloadArchive(logger, options).then((archivePath) => extractArchive(logger, { archivePath }));
|
|
157
|
+
}
|
|
158
|
+
function binaryDirName(options) {
|
|
159
|
+
const version = options?.version ?? pkg.getPackageJson()['pl-version'];
|
|
160
|
+
return `pl-${version}-${archiveArch()}`;
|
|
161
|
+
}
|
|
162
|
+
function binaryPath(version, ...p) {
|
|
163
|
+
return pkg.binaries(binaryDirName({ version }), ...p);
|
|
164
|
+
}
|
|
165
|
+
function trimExtension(filename) {
|
|
166
|
+
const lastDotIndex = filename.lastIndexOf('.');
|
|
167
|
+
if (lastDotIndex === -1) {
|
|
168
|
+
return filename;
|
|
169
|
+
}
|
|
170
|
+
return filename.slice(0, lastDotIndex);
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=platforma.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platforma.js","sourceRoot":"","sources":["../src/platforma.ts"],"names":[],"mappings":"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"}
|
package/dist/run.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { SpawnOptions, SpawnSyncReturns, ChildProcess } from 'child_process';
|
|
2
|
+
import { dockerRunInfo, processRunInfo } from './state';
|
|
3
|
+
import winston from 'winston';
|
|
4
|
+
export declare function runDocker(logger: winston.Logger, args: readonly string[], options: SpawnOptions, stateToSave?: dockerRunInfo): SpawnSyncReturns<Buffer>;
|
|
5
|
+
export declare function runProcess(logger: winston.Logger, cmd: string, args: readonly string[], options: SpawnOptions, stateToSave?: processRunInfo): ChildProcess;
|
|
6
|
+
export declare function rerunLast(logger: winston.Logger, options: SpawnOptions): SpawnSyncReturns<Buffer>;
|
package/dist/run.js
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.runDocker = runDocker;
|
|
7
|
+
exports.runProcess = runProcess;
|
|
8
|
+
exports.rerunLast = rerunLast;
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
const state_1 = __importDefault(require("./state"));
|
|
11
|
+
function runDocker(logger, args, options, stateToSave) {
|
|
12
|
+
state_1.default.lastRun = {
|
|
13
|
+
...state_1.default.lastRun,
|
|
14
|
+
mode: 'docker',
|
|
15
|
+
cmd: 'docker',
|
|
16
|
+
args: args,
|
|
17
|
+
workdir: options.cwd,
|
|
18
|
+
envs: options.env,
|
|
19
|
+
docker: {
|
|
20
|
+
...state_1.default.lastRun?.docker,
|
|
21
|
+
...stateToSave
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
return runSync(logger, 'docker', args, options);
|
|
25
|
+
}
|
|
26
|
+
function runProcess(logger, cmd, args, options, stateToSave) {
|
|
27
|
+
state_1.default.lastRun = {
|
|
28
|
+
...state_1.default.lastRun,
|
|
29
|
+
mode: 'process',
|
|
30
|
+
cmd: cmd,
|
|
31
|
+
args: args,
|
|
32
|
+
workdir: options.cwd,
|
|
33
|
+
envs: options.env,
|
|
34
|
+
process: {
|
|
35
|
+
...state_1.default.lastRun?.process,
|
|
36
|
+
...stateToSave
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const result = run(logger, cmd, args, options);
|
|
40
|
+
state_1.default.lastRun.process = {
|
|
41
|
+
...state_1.default.lastRun.process,
|
|
42
|
+
pid: result.pid
|
|
43
|
+
};
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
function rerunLast(logger, options) {
|
|
47
|
+
if (!state_1.default.lastRun) {
|
|
48
|
+
throw new Error('no previous run info found: this is the first run after package installation');
|
|
49
|
+
}
|
|
50
|
+
options = {
|
|
51
|
+
cwd: state_1.default.lastRun.workdir,
|
|
52
|
+
env: {
|
|
53
|
+
...state_1.default.lastRun.envs,
|
|
54
|
+
...options.env
|
|
55
|
+
},
|
|
56
|
+
...options
|
|
57
|
+
};
|
|
58
|
+
return runSync(logger, state_1.default.lastRun.cmd, state_1.default.lastRun.args, options);
|
|
59
|
+
}
|
|
60
|
+
function run(logger, cmd, args, options) {
|
|
61
|
+
logger.info(`Running:\n env: ${JSON.stringify(options.env)}\n cmd: ${JSON.stringify([cmd, ...args])}\n wd: ${options.cwd}`);
|
|
62
|
+
options.env = { ...process.env, ...options.env };
|
|
63
|
+
logger.debug(' spawning child process');
|
|
64
|
+
const child = (0, child_process_1.spawn)(cmd, args, options);
|
|
65
|
+
var exitAfterChild = false;
|
|
66
|
+
//
|
|
67
|
+
// Ensure Ctrl+C causes right finalization order: first stop child process, then stop the parent.
|
|
68
|
+
//
|
|
69
|
+
const sigintHandler = () => {
|
|
70
|
+
child.kill('SIGINT');
|
|
71
|
+
exitAfterChild = true;
|
|
72
|
+
};
|
|
73
|
+
logger.debug(' setting up signal handler');
|
|
74
|
+
process.on('SIGINT', sigintHandler);
|
|
75
|
+
child.on('close', (code) => {
|
|
76
|
+
process.removeListener('SIGINT', sigintHandler);
|
|
77
|
+
if (exitAfterChild) {
|
|
78
|
+
process.exit(code);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
return child;
|
|
82
|
+
}
|
|
83
|
+
function runSync(logger, cmd, args, options) {
|
|
84
|
+
logger.info(`Running:\n env: ${JSON.stringify(options.env)}\n cmd: ${JSON.stringify([cmd, ...args])}\n wd: ${options.cwd}`);
|
|
85
|
+
options.env = { ...process.env, ...options.env };
|
|
86
|
+
return (0, child_process_1.spawnSync)(cmd, args, options);
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=run.js.map
|
package/dist/run.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
package/dist/state.d.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export type runMode = 'docker' | 'process';
|
|
2
|
+
export type dockerRunInfo = {
|
|
3
|
+
plImage?: string;
|
|
4
|
+
composePath?: string;
|
|
5
|
+
primaryPath?: string;
|
|
6
|
+
workPath?: string;
|
|
7
|
+
libraryPath?: string;
|
|
8
|
+
};
|
|
9
|
+
export type processRunInfo = {
|
|
10
|
+
pid?: number;
|
|
11
|
+
storagePath?: string;
|
|
12
|
+
};
|
|
13
|
+
export type lastRun = {
|
|
14
|
+
docker?: dockerRunInfo;
|
|
15
|
+
process?: processRunInfo;
|
|
16
|
+
mode: runMode;
|
|
17
|
+
cmd: string;
|
|
18
|
+
args: readonly string[];
|
|
19
|
+
workdir?: string;
|
|
20
|
+
envs?: NodeJS.Dict<string>;
|
|
21
|
+
};
|
|
22
|
+
export declare function reset(): void;
|
|
23
|
+
declare class State {
|
|
24
|
+
private static instance;
|
|
25
|
+
private state;
|
|
26
|
+
readonly filePath: string;
|
|
27
|
+
private readonly dirPath;
|
|
28
|
+
constructor();
|
|
29
|
+
static getInstance(): State;
|
|
30
|
+
path(...p: string[]): string;
|
|
31
|
+
private writeState;
|
|
32
|
+
get isActive(): boolean;
|
|
33
|
+
set isActive(value: boolean);
|
|
34
|
+
get lastRun(): lastRun | undefined;
|
|
35
|
+
set lastRun(info: lastRun);
|
|
36
|
+
}
|
|
37
|
+
declare const _default: State;
|
|
38
|
+
export default _default;
|
package/dist/state.js
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.reset = reset;
|
|
30
|
+
const os_1 = __importDefault(require("os"));
|
|
31
|
+
const fs_1 = __importDefault(require("fs"));
|
|
32
|
+
const path_1 = __importDefault(require("path"));
|
|
33
|
+
const pkg = __importStar(require("./package"));
|
|
34
|
+
function reset() {
|
|
35
|
+
fs_1.default.rmSync(State.getInstance().filePath);
|
|
36
|
+
}
|
|
37
|
+
class State {
|
|
38
|
+
static instance;
|
|
39
|
+
state = {
|
|
40
|
+
lastRun: undefined,
|
|
41
|
+
isActive: false
|
|
42
|
+
};
|
|
43
|
+
filePath;
|
|
44
|
+
dirPath;
|
|
45
|
+
constructor() {
|
|
46
|
+
const home = os_1.default.homedir();
|
|
47
|
+
const stateDir = path_1.default.resolve(home, '.config', 'pl-bootstrap');
|
|
48
|
+
const stateFile = path_1.default.join(stateDir, 'state.json');
|
|
49
|
+
this.dirPath = stateDir;
|
|
50
|
+
this.filePath = stateFile;
|
|
51
|
+
if (!fs_1.default.existsSync(stateDir)) {
|
|
52
|
+
fs_1.default.mkdirSync(stateDir, { recursive: true });
|
|
53
|
+
}
|
|
54
|
+
if (fs_1.default.existsSync(stateFile)) {
|
|
55
|
+
this.state = JSON.parse(pkg.readFileSync(stateFile).toString());
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
static getInstance() {
|
|
59
|
+
if (!State.instance) {
|
|
60
|
+
State.instance = new State();
|
|
61
|
+
}
|
|
62
|
+
return State.instance;
|
|
63
|
+
}
|
|
64
|
+
path(...p) {
|
|
65
|
+
return path_1.default.join(this.dirPath, ...p);
|
|
66
|
+
}
|
|
67
|
+
writeState() {
|
|
68
|
+
fs_1.default.writeFileSync(this.filePath, JSON.stringify(this.state));
|
|
69
|
+
}
|
|
70
|
+
get isActive() {
|
|
71
|
+
return this.state.isActive;
|
|
72
|
+
}
|
|
73
|
+
set isActive(value) {
|
|
74
|
+
this.state.isActive = value;
|
|
75
|
+
this.writeState();
|
|
76
|
+
}
|
|
77
|
+
get lastRun() {
|
|
78
|
+
return this.state.lastRun;
|
|
79
|
+
}
|
|
80
|
+
set lastRun(info) {
|
|
81
|
+
this.state.lastRun = info;
|
|
82
|
+
this.writeState();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.default = State.getInstance();
|
|
86
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,sBAEC;AAlCD,4CAAoB;AACpB,4CAAoB;AACpB,gDAAwB;AACxB,+CAAiC;AA6BjC,SAAgB,KAAK;IACnB,YAAE,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAOD,MAAM,KAAK;IACD,MAAM,CAAC,QAAQ,CAAQ;IAEvB,KAAK,GAAU;QACrB,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,KAAK;KAChB,CAAC;IAEc,QAAQ,CAAS;IAChB,OAAO,CAAS;IAEjC;QACE,MAAM,IAAI,GAAG,YAAE,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEpD,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAE1B,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,YAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpB,KAAK,CAAC,QAAQ,GAAG,IAAI,KAAK,EAAE,CAAC;QAC/B,CAAC;QAED,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;IAEM,IAAI,CAAC,GAAG,CAAW;QACxB,OAAO,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAEO,UAAU;QAChB,YAAE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED,IAAI,QAAQ,CAAC,KAAc;QACzB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED,IAAI,OAAO,CAAC,IAAa;QACvB,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;CACF;AAED,kBAAe,KAAK,CAAC,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as types from './types';
|
|
2
|
+
export { plOptions } from './types';
|
|
3
|
+
export declare function storageSettingsFromURL(storageURL: string, baseDir?: string): types.storageOptions;
|
|
4
|
+
export declare function loadDefaults(jwtKey: string, options?: types.plOptions): types.plSettings;
|
|
5
|
+
export declare function render(options: types.plSettings): string;
|