@alwaysai/device-agent 0.0.3 → 0.0.5
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/lib/application-control/backup.d.ts +8 -0
- package/lib/application-control/backup.d.ts.map +1 -0
- package/lib/application-control/backup.js +34 -0
- package/lib/application-control/backup.js.map +1 -0
- package/lib/application-control/environment-variables.d.ts +9 -0
- package/lib/application-control/environment-variables.d.ts.map +1 -0
- package/lib/application-control/environment-variables.js +82 -0
- package/lib/application-control/environment-variables.js.map +1 -0
- package/lib/application-control/index.d.ts +9 -0
- package/lib/application-control/index.d.ts.map +1 -0
- package/lib/application-control/index.js +27 -0
- package/lib/application-control/index.js.map +1 -0
- package/lib/application-control/install.d.ts +16 -0
- package/lib/application-control/install.d.ts.map +1 -0
- package/lib/application-control/install.js +117 -0
- package/lib/application-control/install.js.map +1 -0
- package/lib/application-control/models.d.ts +8 -0
- package/lib/application-control/models.d.ts.map +1 -1
- package/lib/application-control/models.js +44 -11
- package/lib/application-control/models.js.map +1 -1
- package/lib/application-control/status.d.ts +26 -0
- package/lib/application-control/status.d.ts.map +1 -0
- package/lib/application-control/status.js +138 -0
- package/lib/application-control/status.js.map +1 -0
- package/lib/application-control/types.d.ts +5 -0
- package/lib/application-control/types.d.ts.map +1 -0
- package/lib/{util/spawner → application-control}/types.js +0 -0
- package/lib/{util/spawner → application-control}/types.js.map +1 -1
- package/lib/application-control/utils.d.ts +2 -9
- package/lib/application-control/utils.d.ts.map +1 -1
- package/lib/application-control/utils.js +14 -29
- package/lib/application-control/utils.js.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.d.ts +16 -1
- package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.js +239 -9
- package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
- package/lib/docker/docker-cmd.js +2 -2
- package/lib/docker/docker-cmd.js.map +1 -1
- package/lib/docker/docker-compose-cmd.js +2 -2
- package/lib/docker/docker-compose-cmd.js.map +1 -1
- package/lib/environment.d.ts +2 -0
- package/lib/environment.d.ts.map +1 -1
- package/lib/environment.js +3 -1
- package/lib/environment.js.map +1 -1
- package/lib/index.js +10 -8
- package/lib/index.js.map +1 -1
- package/lib/infrastructure/agent-config.d.ts +73 -0
- package/lib/infrastructure/agent-config.d.ts.map +1 -0
- package/lib/infrastructure/agent-config.js +186 -0
- package/lib/infrastructure/agent-config.js.map +1 -0
- package/lib/infrastructure/agent-config.test.d.ts +2 -0
- package/lib/infrastructure/agent-config.test.d.ts.map +1 -0
- package/lib/infrastructure/agent-config.test.js +135 -0
- package/lib/infrastructure/agent-config.test.js.map +1 -0
- package/lib/infrastructure/certificates-and-tokens.d.ts +6 -0
- package/lib/infrastructure/certificates-and-tokens.d.ts.map +1 -0
- package/lib/infrastructure/certificates-and-tokens.js +69 -0
- package/lib/infrastructure/certificates-and-tokens.js.map +1 -0
- package/lib/{util → infrastructure}/urls.d.ts +0 -0
- package/lib/infrastructure/urls.d.ts.map +1 -0
- package/lib/{util → infrastructure}/urls.js +3 -3
- package/lib/infrastructure/urls.js.map +1 -0
- package/lib/root.js +3 -3
- package/lib/root.js.map +1 -1
- package/lib/subcommands/app/app.d.ts +31 -14
- package/lib/subcommands/app/app.d.ts.map +1 -1
- package/lib/subcommands/app/app.js +117 -62
- package/lib/subcommands/app/app.js.map +1 -1
- package/lib/subcommands/app/index.d.ts.map +1 -1
- package/lib/subcommands/app/index.js +6 -1
- package/lib/subcommands/app/index.js.map +1 -1
- package/lib/subcommands/device/device.d.ts +6 -0
- package/lib/subcommands/device/device.d.ts.map +1 -0
- package/lib/subcommands/device/device.js +62 -0
- package/lib/subcommands/device/device.js.map +1 -0
- package/lib/subcommands/device/index.d.ts +2 -0
- package/lib/subcommands/device/index.d.ts.map +1 -0
- package/lib/subcommands/device/index.js +11 -0
- package/lib/subcommands/device/index.js.map +1 -0
- package/lib/subcommands/get-model-package.d.ts +5 -0
- package/lib/subcommands/get-model-package.d.ts.map +1 -0
- package/lib/subcommands/get-model-package.js +51 -0
- package/lib/subcommands/get-model-package.js.map +1 -0
- package/lib/subcommands/index.d.ts +8 -1
- package/lib/subcommands/index.d.ts.map +1 -1
- package/lib/subcommands/index.js +6 -6
- package/lib/subcommands/index.js.map +1 -1
- package/lib/subcommands/login.d.ts +3 -2
- package/lib/subcommands/login.d.ts.map +1 -1
- package/lib/subcommands/login.js +11 -4
- package/lib/subcommands/login.js.map +1 -1
- package/lib/util/copy-dir.js +3 -3
- package/lib/util/copy-dir.js.map +1 -1
- package/lib/util/directories.d.ts +1 -1
- package/lib/util/directories.d.ts.map +1 -1
- package/lib/util/directories.js +9 -14
- package/lib/util/directories.js.map +1 -1
- package/lib/util/get-device-id.d.ts +2 -0
- package/lib/util/get-device-id.d.ts.map +1 -0
- package/lib/util/get-device-id.js +24 -0
- package/lib/util/get-device-id.js.map +1 -0
- package/package.json +19 -14
- package/readme.md +176 -72
- package/src/application-control/backup.ts +32 -0
- package/src/application-control/environment-variables.ts +81 -0
- package/src/application-control/index.ts +40 -0
- package/src/application-control/install.ts +126 -0
- package/src/application-control/models.ts +51 -11
- package/src/application-control/status.ts +156 -0
- package/src/application-control/types.ts +1 -0
- package/src/application-control/utils.ts +12 -27
- package/src/cloud-connection/device-agent-cloud-connection.ts +280 -13
- package/src/docker/docker-cmd.ts +1 -1
- package/src/docker/docker-compose-cmd.ts +1 -1
- package/src/environment.ts +2 -0
- package/src/index.ts +10 -7
- package/src/infrastructure/agent-config.test.ts +143 -0
- package/src/infrastructure/agent-config.ts +217 -0
- package/src/infrastructure/certificates-and-tokens.ts +71 -0
- package/src/{util → infrastructure}/urls.ts +1 -1
- package/src/root.ts +3 -3
- package/src/subcommands/app/app.ts +135 -62
- package/src/subcommands/app/index.ts +11 -1
- package/src/subcommands/device/device.ts +63 -0
- package/src/subcommands/device/index.ts +8 -0
- package/src/subcommands/get-model-package.ts +60 -0
- package/src/subcommands/index.ts +5 -5
- package/src/subcommands/login.ts +11 -4
- package/src/util/copy-dir.ts +1 -1
- package/src/util/directories.ts +12 -17
- package/src/util/get-device-id.ts +22 -0
- package/lib/application-control/application-control.d.ts +0 -46
- package/lib/application-control/application-control.d.ts.map +0 -1
- package/lib/application-control/application-control.js +0 -234
- package/lib/application-control/application-control.js.map +0 -1
- package/lib/constants.d.ts +0 -17
- package/lib/constants.d.ts.map +0 -1
- package/lib/constants.js +0 -24
- package/lib/constants.js.map +0 -1
- package/lib/subcommands/device-control.d.ts +0 -2
- package/lib/subcommands/device-control.d.ts.map +0 -1
- package/lib/subcommands/device-control.js +0 -19
- package/lib/subcommands/device-control.js.map +0 -1
- package/lib/subcommands/test-app.d.ts +0 -2
- package/lib/subcommands/test-app.d.ts.map +0 -1
- package/lib/subcommands/test-app.js +0 -29
- package/lib/subcommands/test-app.js.map +0 -1
- package/lib/util/spawner/gnu-spawner.d.ts +0 -9
- package/lib/util/spawner/gnu-spawner.d.ts.map +0 -1
- package/lib/util/spawner/gnu-spawner.js +0 -102
- package/lib/util/spawner/gnu-spawner.js.map +0 -1
- package/lib/util/spawner/js-spawner.d.ts +0 -5
- package/lib/util/spawner/js-spawner.d.ts.map +0 -1
- package/lib/util/spawner/js-spawner.js +0 -89
- package/lib/util/spawner/js-spawner.js.map +0 -1
- package/lib/util/spawner/types.d.ts +0 -28
- package/lib/util/spawner/types.d.ts.map +0 -1
- package/lib/util/spawner-base/index.d.ts +0 -17
- package/lib/util/spawner-base/index.d.ts.map +0 -1
- package/lib/util/spawner-base/index.js +0 -30
- package/lib/util/spawner-base/index.js.map +0 -1
- package/lib/util/spawner-base/run-foreground-sync.d.ts +0 -3
- package/lib/util/spawner-base/run-foreground-sync.d.ts.map +0 -1
- package/lib/util/spawner-base/run-foreground-sync.js +0 -18
- package/lib/util/spawner-base/run-foreground-sync.js.map +0 -1
- package/lib/util/spawner-base/run-foreground.d.ts +0 -3
- package/lib/util/spawner-base/run-foreground.d.ts.map +0 -1
- package/lib/util/spawner-base/run-foreground.js +0 -49
- package/lib/util/spawner-base/run-foreground.js.map +0 -1
- package/lib/util/spawner-base/run-streaming.d.ts +0 -4
- package/lib/util/spawner-base/run-streaming.d.ts.map +0 -1
- package/lib/util/spawner-base/run-streaming.js +0 -35
- package/lib/util/spawner-base/run-streaming.js.map +0 -1
- package/lib/util/spawner-base/run.d.ts +0 -4
- package/lib/util/spawner-base/run.d.ts.map +0 -1
- package/lib/util/spawner-base/run.js +0 -56
- package/lib/util/spawner-base/run.js.map +0 -1
- package/lib/util/urls.d.ts.map +0 -1
- package/lib/util/urls.js.map +0 -1
- package/lib/web/index.html +0 -229
- package/lib/web/static/Karla.css +0 -18
- package/lib/web/static/bootstrap-4.3.1.min.css +0 -7
- package/lib/web/static/bootstrap-4.3.1.min.js +0 -7
- package/lib/web/static/favicon.ico +0 -0
- package/lib/web/static/jquery-3.3.1.slim.min.js +0 -2
- package/lib/web/static/popper-1.14.7.min.js +0 -5
- package/lib/web/web-interface.d.ts +0 -2
- package/lib/web/web-interface.d.ts.map +0 -1
- package/lib/web/web-interface.js +0 -74
- package/lib/web/web-interface.js.map +0 -1
- package/src/application-control/application-control.ts +0 -273
- package/src/constants.ts +0 -32
- package/src/subcommands/device-control.ts +0 -16
- package/src/subcommands/test-app.ts +0 -30
- package/src/util/spawner/gnu-spawner.ts +0 -114
- package/src/util/spawner/js-spawner.ts +0 -110
- package/src/util/spawner/types.ts +0 -28
- package/src/util/spawner-base/index.ts +0 -28
- package/src/util/spawner-base/run-foreground-sync.ts +0 -16
- package/src/util/spawner-base/run-foreground.ts +0 -49
- package/src/util/spawner-base/run-streaming.ts +0 -40
- package/src/util/spawner-base/run.ts +0 -60
- package/src/web/index.html +0 -229
- package/src/web/static/Karla.css +0 -18
- package/src/web/static/bootstrap-4.3.1.min.css +0 -7
- package/src/web/static/bootstrap-4.3.1.min.js +0 -7
- package/src/web/static/favicon.ico +0 -0
- package/src/web/static/jquery-3.3.1.slim.min.js +0 -2
- package/src/web/static/popper-1.14.7.min.js +0 -5
- package/src/web/web-interface.ts +0 -89
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
export declare type AppDetails = {
|
|
3
|
-
projectId: string;
|
|
4
|
-
version: string;
|
|
5
|
-
};
|
|
6
|
-
export declare function getInstalledApps(): Promise<AppDetails[]>;
|
|
7
|
-
export declare function rollbackApp(props: {
|
|
8
|
-
projectId: string;
|
|
9
|
-
}): Promise<void>;
|
|
10
|
-
export declare function listAppReleases(props: {
|
|
11
|
-
projectId: string;
|
|
12
|
-
}): Promise<import("alwaysai/lib/util/rest-client").ReleaseHistoryArray>;
|
|
13
|
-
export declare function listAppLatestRelease(props: {
|
|
14
|
-
projectId: string;
|
|
15
|
-
}): Promise<string | undefined>;
|
|
16
|
-
export declare function installApp(props: {
|
|
17
|
-
projectId: string;
|
|
18
|
-
releaseHash: string;
|
|
19
|
-
}): Promise<void>;
|
|
20
|
-
export declare type ServiceState = 'Stopped' | 'Up' | 'Restarting';
|
|
21
|
-
export declare type ServiceStatus = {
|
|
22
|
-
name: string;
|
|
23
|
-
state: ServiceState;
|
|
24
|
-
};
|
|
25
|
-
export declare type AppStatus = {
|
|
26
|
-
appDetails: AppDetails;
|
|
27
|
-
services: ServiceStatus[];
|
|
28
|
-
};
|
|
29
|
-
export declare function getAppStatus(props: {
|
|
30
|
-
projectId: string;
|
|
31
|
-
}): Promise<AppStatus>;
|
|
32
|
-
export declare function getAppLogs(props: {
|
|
33
|
-
projectId: string;
|
|
34
|
-
services?: string[];
|
|
35
|
-
}): Promise<NodeJS.ReadableStream>;
|
|
36
|
-
export declare function startApp(props: {
|
|
37
|
-
projectId: string;
|
|
38
|
-
dockerLoginToken?: string;
|
|
39
|
-
}): Promise<void>;
|
|
40
|
-
export declare function stopApp(props: {
|
|
41
|
-
projectId: string;
|
|
42
|
-
}): Promise<void>;
|
|
43
|
-
export declare function uninstallApp(props: {
|
|
44
|
-
projectId: string;
|
|
45
|
-
}): Promise<void>;
|
|
46
|
-
//# sourceMappingURL=application-control.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"application-control.d.ts","sourceRoot":"","sources":["../../src/application-control/application-control.ts"],"names":[],"mappings":";AAqBA,oBAAY,UAAU,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhE,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAkB9D;AAUD,wBAAsB,WAAW,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,iBAW7D;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,wEAIjE;AAED,wBAAsB,oBAAoB,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,+BAOtE;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0ChB;AAED,oBAAY,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,YAAY,CAAC;AAC3D,oBAAY,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAAC;AAClE,oBAAY,SAAS,GAAG;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAA;CAAE,CAAC;AAE9E,wBAAsB,YAAY,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CA+CnF;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAyBjC;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBhB;AAED,wBAAsB,OAAO,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBzE;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB9E"}
|
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.uninstallApp = exports.stopApp = exports.startApp = exports.getAppLogs = exports.getAppStatus = exports.installApp = exports.listAppLatestRelease = exports.listAppReleases = exports.rollbackApp = exports.getInstalledApps = void 0;
|
|
4
|
-
const docker_compose_1 = require("docker-compose");
|
|
5
|
-
const rimraf = require("rimraf");
|
|
6
|
-
const fs = require("fs");
|
|
7
|
-
const alwaysai_1 = require("alwaysai");
|
|
8
|
-
const path_1 = require("path");
|
|
9
|
-
const run_cli_cmd_1 = require("../util/run-cli-cmd");
|
|
10
|
-
const docker_cmd_1 = require("../docker/docker-cmd");
|
|
11
|
-
const js_spawner_1 = require("../util/spawner/js-spawner");
|
|
12
|
-
const copy_dir_1 = require("../util/copy-dir");
|
|
13
|
-
const utils_1 = require("./utils");
|
|
14
|
-
const BACKUP_EXT = '.bak';
|
|
15
|
-
async function getInstalledApps() {
|
|
16
|
-
if (!fs.existsSync(utils_1.APP_ROOT)) {
|
|
17
|
-
return [];
|
|
18
|
-
}
|
|
19
|
-
const projectIds = fs.readdirSync(utils_1.APP_ROOT).filter(file => {
|
|
20
|
-
const isDir = fs.statSync(`${utils_1.APP_ROOT}/${file}`).isDirectory();
|
|
21
|
-
const isBak = `${utils_1.APP_ROOT}/${file}`.includes(BACKUP_EXT);
|
|
22
|
-
return isDir && !isBak;
|
|
23
|
-
});
|
|
24
|
-
const appDetails = [];
|
|
25
|
-
for (const projectId of projectIds) {
|
|
26
|
-
const appDir = (0, utils_1.getAppDir)(projectId);
|
|
27
|
-
const version = await (0, utils_1.getAppVersion)({ appDir });
|
|
28
|
-
appDetails.push({ projectId, version });
|
|
29
|
-
}
|
|
30
|
-
return appDetails;
|
|
31
|
-
}
|
|
32
|
-
exports.getInstalledApps = getInstalledApps;
|
|
33
|
-
async function createAppBackup(props) {
|
|
34
|
-
const { projectId } = props;
|
|
35
|
-
const appDir = (0, utils_1.getAppDir)(projectId);
|
|
36
|
-
const backupAppDir = `${appDir}${BACKUP_EXT}`;
|
|
37
|
-
await (0, copy_dir_1.copyDir)({ srcPath: appDir, destPath: backupAppDir });
|
|
38
|
-
console.log(`Backed up app ${projectId} to ${backupAppDir}`);
|
|
39
|
-
}
|
|
40
|
-
async function rollbackApp(props) {
|
|
41
|
-
const { projectId } = props;
|
|
42
|
-
const appDir = (0, utils_1.getAppDir)(projectId);
|
|
43
|
-
const backupAppDir = `${appDir}${BACKUP_EXT}`;
|
|
44
|
-
if (!fs.existsSync(backupAppDir)) {
|
|
45
|
-
throw new Error(`Backup doesn't exist for ${projectId}`);
|
|
46
|
-
}
|
|
47
|
-
rimraf.sync(appDir);
|
|
48
|
-
await (0, copy_dir_1.copyDir)({ srcPath: `${appDir}${BACKUP_EXT}`, destPath: appDir });
|
|
49
|
-
await (0, utils_1.buildApp)({ appDir });
|
|
50
|
-
console.log(`Rolled back app ${projectId} to previous version`);
|
|
51
|
-
}
|
|
52
|
-
exports.rollbackApp = rollbackApp;
|
|
53
|
-
async function listAppReleases(props) {
|
|
54
|
-
const { projectId } = props;
|
|
55
|
-
const releaseHistory = await (0, alwaysai_1.fetchAppReleaseHistory)(projectId);
|
|
56
|
-
return releaseHistory;
|
|
57
|
-
}
|
|
58
|
-
exports.listAppReleases = listAppReleases;
|
|
59
|
-
async function listAppLatestRelease(props) {
|
|
60
|
-
const { projectId } = props;
|
|
61
|
-
const releaseHistory = await (0, alwaysai_1.fetchAppReleaseHistory)(projectId);
|
|
62
|
-
if (releaseHistory.length >= 1) {
|
|
63
|
-
return releaseHistory[0]['releaseHash'];
|
|
64
|
-
}
|
|
65
|
-
return undefined;
|
|
66
|
-
}
|
|
67
|
-
exports.listAppLatestRelease = listAppLatestRelease;
|
|
68
|
-
async function installApp(props) {
|
|
69
|
-
const { projectId, releaseHash } = props;
|
|
70
|
-
console.log(`Installing ${projectId}`);
|
|
71
|
-
const appDir = (0, utils_1.getAppDir)(projectId);
|
|
72
|
-
const TEMP_DIR = (0, path_1.join)(utils_1.APP_ROOT, 'temp');
|
|
73
|
-
const spawner = (0, js_spawner_1.JsSpawner)();
|
|
74
|
-
await spawner.mkdirp(TEMP_DIR);
|
|
75
|
-
// TODO Check valid projectId
|
|
76
|
-
// Check if app is installed
|
|
77
|
-
if (await (0, utils_1.isAppInstalled)({ appDir })) {
|
|
78
|
-
console.log('Application is already installed, updating');
|
|
79
|
-
await createAppBackup({ projectId });
|
|
80
|
-
await spawner.rimraf(appDir);
|
|
81
|
-
}
|
|
82
|
-
// Create app directory
|
|
83
|
-
await spawner.mkdirp(appDir);
|
|
84
|
-
// download the application
|
|
85
|
-
await (0, run_cli_cmd_1.runCliCmd)({
|
|
86
|
-
cmd: [
|
|
87
|
-
'release',
|
|
88
|
-
'pull',
|
|
89
|
-
'--yes',
|
|
90
|
-
'--project',
|
|
91
|
-
projectId,
|
|
92
|
-
'--releaseHash',
|
|
93
|
-
releaseHash,
|
|
94
|
-
],
|
|
95
|
-
cwd: TEMP_DIR,
|
|
96
|
-
});
|
|
97
|
-
// Unpack app package and move to install dir
|
|
98
|
-
await spawner.untar(fs.createReadStream((0, path_1.join)(TEMP_DIR, `${releaseHash}.tgz`)), appDir);
|
|
99
|
-
console.log(`Unpacked application to ${appDir}`);
|
|
100
|
-
await (0, utils_1.setAppVersion)({ appDir, version: releaseHash });
|
|
101
|
-
await (0, utils_1.buildApp)({ appDir });
|
|
102
|
-
await spawner.rimraf(TEMP_DIR);
|
|
103
|
-
console.log(`Installed ${projectId} to ${appDir}`);
|
|
104
|
-
}
|
|
105
|
-
exports.installApp = installApp;
|
|
106
|
-
async function getAppStatus(props) {
|
|
107
|
-
const { projectId } = props;
|
|
108
|
-
const appDir = (0, utils_1.getAppDir)(projectId);
|
|
109
|
-
if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
|
|
110
|
-
throw new Error('Application is not installed');
|
|
111
|
-
}
|
|
112
|
-
// Check if app is running
|
|
113
|
-
const output = await docker_compose_1.default.ps({ cwd: appDir });
|
|
114
|
-
if (output.exitCode !== 0) {
|
|
115
|
-
throw new Error(`Failed to get application status! stdout=${output.out} stderr=${output.err}`);
|
|
116
|
-
}
|
|
117
|
-
const appDetails = { projectId, version: await (0, utils_1.getAppVersion)({ appDir }) };
|
|
118
|
-
const services = [];
|
|
119
|
-
if (output.data.services.length === 0) {
|
|
120
|
-
// If the app has never been started (or has an empty docker-compose.yaml)
|
|
121
|
-
// the list will be empty.
|
|
122
|
-
services.push({ name: '', state: 'Stopped' });
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
for (const service of output.data.services) {
|
|
126
|
-
// Container name has the format:
|
|
127
|
-
// <projectId>_name_<number>
|
|
128
|
-
const matchProjectId = new RegExp(`^${projectId}`);
|
|
129
|
-
const name = service.name
|
|
130
|
-
.replace(matchProjectId, '')
|
|
131
|
-
.replace(/\d+$/, '')
|
|
132
|
-
.replace(/_/g, '');
|
|
133
|
-
let state;
|
|
134
|
-
if (service.state.includes('Up')) {
|
|
135
|
-
state = 'Up';
|
|
136
|
-
}
|
|
137
|
-
else if (service.state.includes('Stopped') || service.state.includes('Exit')) {
|
|
138
|
-
state = 'Stopped';
|
|
139
|
-
}
|
|
140
|
-
else if (service.state.includes('Restarting')) {
|
|
141
|
-
state = 'Restarting';
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
throw new Error(`Unknown state for service! (${service.state})`);
|
|
145
|
-
}
|
|
146
|
-
services.push({ name, state });
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
return { appDetails, services };
|
|
150
|
-
}
|
|
151
|
-
exports.getAppStatus = getAppStatus;
|
|
152
|
-
async function getAppLogs(props) {
|
|
153
|
-
const { projectId, services } = props;
|
|
154
|
-
const appDir = (0, utils_1.getAppDir)(projectId);
|
|
155
|
-
if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
|
|
156
|
-
throw new Error('Application is not installed');
|
|
157
|
-
}
|
|
158
|
-
const serviceList = services
|
|
159
|
-
? services
|
|
160
|
-
: await (async function () {
|
|
161
|
-
const appStatus = await getAppStatus({ projectId });
|
|
162
|
-
const services = [];
|
|
163
|
-
for (const service of appStatus.services) {
|
|
164
|
-
services.push(service.name);
|
|
165
|
-
}
|
|
166
|
-
return services;
|
|
167
|
-
})();
|
|
168
|
-
// Use direct command with spawner in order to get a readable stream
|
|
169
|
-
return await (0, js_spawner_1.JsSpawner)().runStreaming({
|
|
170
|
-
exe: 'docker-compose',
|
|
171
|
-
args: ['logs', '-f', ...serviceList],
|
|
172
|
-
cwd: appDir,
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
exports.getAppLogs = getAppLogs;
|
|
176
|
-
async function startApp(props) {
|
|
177
|
-
const { projectId, dockerLoginToken } = props;
|
|
178
|
-
const appDir = (0, utils_1.getAppDir)(projectId);
|
|
179
|
-
// Check if app is installed
|
|
180
|
-
if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
|
|
181
|
-
throw new Error('Application is not installed');
|
|
182
|
-
}
|
|
183
|
-
if (dockerLoginToken !== undefined) {
|
|
184
|
-
const result = await (0, docker_cmd_1.runDockerLogin)({ token: dockerLoginToken });
|
|
185
|
-
console.log(result);
|
|
186
|
-
}
|
|
187
|
-
// TODO: Check if app is running
|
|
188
|
-
// Start app
|
|
189
|
-
const upOut = await docker_compose_1.default.upAll({ cwd: appDir });
|
|
190
|
-
console.log(upOut);
|
|
191
|
-
if (upOut.exitCode !== 0) {
|
|
192
|
-
throw new Error(`Failed to start application! stdout=${upOut.out} stderr=${upOut.err}`);
|
|
193
|
-
}
|
|
194
|
-
console.log('Started', projectId);
|
|
195
|
-
}
|
|
196
|
-
exports.startApp = startApp;
|
|
197
|
-
async function stopApp(props) {
|
|
198
|
-
const { projectId } = props;
|
|
199
|
-
const appDir = (0, utils_1.getAppDir)(projectId);
|
|
200
|
-
// Check if app is installed
|
|
201
|
-
if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
|
|
202
|
-
console.log('Application is not installed');
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
205
|
-
// TODO: Check if app is running
|
|
206
|
-
// Stop app
|
|
207
|
-
const output = await docker_compose_1.default.down({ cwd: appDir });
|
|
208
|
-
console.log(output);
|
|
209
|
-
if (output.exitCode !== 0) {
|
|
210
|
-
throw new Error(`Failed to stop application! stdout=${output.out} stderr=${output.err}`);
|
|
211
|
-
}
|
|
212
|
-
console.log('Stopped', projectId);
|
|
213
|
-
}
|
|
214
|
-
exports.stopApp = stopApp;
|
|
215
|
-
async function uninstallApp(props) {
|
|
216
|
-
const { projectId } = props;
|
|
217
|
-
const appDir = (0, utils_1.getAppDir)(projectId);
|
|
218
|
-
if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
|
|
219
|
-
console.log(`Application ${projectId} not installed`);
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
try {
|
|
223
|
-
await stopApp({ projectId });
|
|
224
|
-
}
|
|
225
|
-
catch (_a) {
|
|
226
|
-
console.log('Failed to stop app, may be left running...');
|
|
227
|
-
}
|
|
228
|
-
// Delete application directory and backup
|
|
229
|
-
rimraf.sync(appDir);
|
|
230
|
-
rimraf.sync(`${appDir}${BACKUP_EXT}`);
|
|
231
|
-
console.log('Uninstalled', projectId);
|
|
232
|
-
}
|
|
233
|
-
exports.uninstallApp = uninstallApp;
|
|
234
|
-
//# sourceMappingURL=application-control.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"application-control.js","sourceRoot":"","sources":["../../src/application-control/application-control.ts"],"names":[],"mappings":"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"}
|
package/lib/constants.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export declare const ALWAYSAI_CLI_EXECUTABLE_NAME = "aai-agent";
|
|
2
|
-
export declare const DOT_ALWAYSAI_DIR: string;
|
|
3
|
-
export declare const AAI_DIR: any;
|
|
4
|
-
export declare const DEVICE_TOKEN_FILE_NAME = "alwaysai.credentials.json";
|
|
5
|
-
export declare const DEVICE_CONFIG_FILE_NAME = "alwaysai.config.json";
|
|
6
|
-
export declare const DEV_HOST_TOKEN_DIR: string;
|
|
7
|
-
export declare const DEVICE_TOKEN_DIR_LINUX: string;
|
|
8
|
-
export declare const DEV_HOST_CERT_AND_KEY_DIR: string;
|
|
9
|
-
export declare const DEVICE_CERT_AND_KEY_DIR_LINUX: string;
|
|
10
|
-
export declare const DEVICE_CERTIFICATE_FILE_NAME = "alwaysai.certificate.pem.crt";
|
|
11
|
-
export declare const DEVICE_PRIVATE_KEY_FILE_NAME = "alwaysai.private.pem.key";
|
|
12
|
-
export declare const DEVICE_PUBLIC_KEY_FILE_NAME = "alwaysai.public.pem.key";
|
|
13
|
-
export declare const DEVICE_ROOT_CERT_FILE_NAME = "alwaysai.root.pem";
|
|
14
|
-
export declare const SUPPORTED_JETPACK_VERSION = 4.4;
|
|
15
|
-
export declare const JETPACK_IMAGE_LINK = "https://developer.nvidia.com/jetson-nano-sd-card-image-44";
|
|
16
|
-
export declare const PLEASE_REPORT_THIS_ERROR_MESSAGE = "Please report this error message to support@alwaysai.co";
|
|
17
|
-
//# sourceMappingURL=constants.d.ts.map
|
package/lib/constants.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,4BAA4B,cAAc,CAAC;AACxD,eAAO,MAAM,gBAAgB,QAA+B,CAAC;AAC7D,eAAO,MAAM,OAAO,KAAuC,CAAC;AAE5D,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAClE,eAAO,MAAM,uBAAuB,yBAAyB,CAAC;AAE9D,eAAO,MAAM,kBAAkB,QAAyC,CAAC;AACzE,eAAO,MAAM,sBAAsB,QAAyC,CAAC;AAE7E,eAAO,MAAM,yBAAyB,QAA2C,CAAC;AAClF,eAAO,MAAM,6BAA6B,QAGzC,CAAC;AAEF,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAC3E,eAAO,MAAM,4BAA4B,6BAA6B,CAAC;AACvE,eAAO,MAAM,2BAA2B,4BAA4B,CAAC;AACrE,eAAO,MAAM,0BAA0B,sBAAsB,CAAC;AAE9D,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,kBAAkB,8DAC8B,CAAC;AAE9D,eAAO,MAAM,gCAAgC,4DACc,CAAC"}
|
package/lib/constants.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PLEASE_REPORT_THIS_ERROR_MESSAGE = exports.JETPACK_IMAGE_LINK = exports.SUPPORTED_JETPACK_VERSION = exports.DEVICE_ROOT_CERT_FILE_NAME = exports.DEVICE_PUBLIC_KEY_FILE_NAME = exports.DEVICE_PRIVATE_KEY_FILE_NAME = exports.DEVICE_CERTIFICATE_FILE_NAME = exports.DEVICE_CERT_AND_KEY_DIR_LINUX = exports.DEV_HOST_CERT_AND_KEY_DIR = exports.DEVICE_TOKEN_DIR_LINUX = exports.DEV_HOST_TOKEN_DIR = exports.DEVICE_CONFIG_FILE_NAME = exports.DEVICE_TOKEN_FILE_NAME = exports.AAI_DIR = exports.DOT_ALWAYSAI_DIR = exports.ALWAYSAI_CLI_EXECUTABLE_NAME = void 0;
|
|
4
|
-
const path_1 = require("path");
|
|
5
|
-
const os_1 = require("os");
|
|
6
|
-
const os = require('os');
|
|
7
|
-
const path = require('path');
|
|
8
|
-
exports.ALWAYSAI_CLI_EXECUTABLE_NAME = 'aai-agent';
|
|
9
|
-
exports.DOT_ALWAYSAI_DIR = (0, path_1.join)((0, os_1.homedir)(), '.alwaysai');
|
|
10
|
-
exports.AAI_DIR = path.join(os.homedir(), '.alwaysai');
|
|
11
|
-
exports.DEVICE_TOKEN_FILE_NAME = 'alwaysai.credentials.json';
|
|
12
|
-
exports.DEVICE_CONFIG_FILE_NAME = 'alwaysai.config.json';
|
|
13
|
-
exports.DEV_HOST_TOKEN_DIR = (0, path_1.join)((0, os_1.homedir)(), '.config', 'alwaysai');
|
|
14
|
-
exports.DEVICE_TOKEN_DIR_LINUX = path_1.posix.join('~', '.config', 'alwaysai');
|
|
15
|
-
exports.DEV_HOST_CERT_AND_KEY_DIR = (0, path_1.join)(exports.DEV_HOST_TOKEN_DIR, 'certificates');
|
|
16
|
-
exports.DEVICE_CERT_AND_KEY_DIR_LINUX = path_1.posix.join(exports.DEVICE_TOKEN_DIR_LINUX, 'certificates');
|
|
17
|
-
exports.DEVICE_CERTIFICATE_FILE_NAME = 'alwaysai.certificate.pem.crt';
|
|
18
|
-
exports.DEVICE_PRIVATE_KEY_FILE_NAME = 'alwaysai.private.pem.key';
|
|
19
|
-
exports.DEVICE_PUBLIC_KEY_FILE_NAME = 'alwaysai.public.pem.key';
|
|
20
|
-
exports.DEVICE_ROOT_CERT_FILE_NAME = 'alwaysai.root.pem';
|
|
21
|
-
exports.SUPPORTED_JETPACK_VERSION = 4.4;
|
|
22
|
-
exports.JETPACK_IMAGE_LINK = 'https://developer.nvidia.com/jetson-nano-sd-card-image-44';
|
|
23
|
-
exports.PLEASE_REPORT_THIS_ERROR_MESSAGE = 'Please report this error message to support@alwaysai.co';
|
|
24
|
-
//# sourceMappingURL=constants.js.map
|
package/lib/constants.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,+BAAmC;AACnC,2BAA6B;AAC7B,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAEhB,QAAA,4BAA4B,GAAG,WAAW,CAAC;AAC3C,QAAA,gBAAgB,GAAG,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,WAAW,CAAC,CAAC;AAChD,QAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAE/C,QAAA,sBAAsB,GAAG,2BAA2B,CAAC;AACrD,QAAA,uBAAuB,GAAG,sBAAsB,CAAC;AAEjD,QAAA,kBAAkB,GAAG,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAC5D,QAAA,sBAAsB,GAAG,YAAK,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAEhE,QAAA,yBAAyB,GAAG,IAAA,WAAI,EAAC,0BAAkB,EAAE,cAAc,CAAC,CAAC;AACrE,QAAA,6BAA6B,GAAG,YAAK,CAAC,IAAI,CACrD,8BAAsB,EACtB,cAAc,CACf,CAAC;AAEW,QAAA,4BAA4B,GAAG,8BAA8B,CAAC;AAC9D,QAAA,4BAA4B,GAAG,0BAA0B,CAAC;AAC1D,QAAA,2BAA2B,GAAG,yBAAyB,CAAC;AACxD,QAAA,0BAA0B,GAAG,mBAAmB,CAAC;AAEjD,QAAA,yBAAyB,GAAG,GAAG,CAAC;AAChC,QAAA,kBAAkB,GAC7B,2DAA2D,CAAC;AAEjD,QAAA,gCAAgC,GAC3C,yDAAyD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"device-control.d.ts","sourceRoot":"","sources":["../../src/subcommands/device-control.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,yKAY/B,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getDeviceInfoCliLeaf = void 0;
|
|
4
|
-
const alwayscli_1 = require("@alwaysai/alwayscli");
|
|
5
|
-
const device_control_1 = require("../device-control/device-control");
|
|
6
|
-
exports.getDeviceInfoCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
7
|
-
name: 'get-device-info',
|
|
8
|
-
description: 'Get device info',
|
|
9
|
-
namedInputs: {},
|
|
10
|
-
async action(_, opts) {
|
|
11
|
-
const deviceInfo = [
|
|
12
|
-
['CPU Utilization', `${String(await (0, device_control_1.getCpuUtil)())} %`],
|
|
13
|
-
['Disk Utilization', `${String(await (0, device_control_1.getDiskUtil)())} %`],
|
|
14
|
-
['Memory Utilization', `${String(await (0, device_control_1.getMemUtil)())} %`],
|
|
15
|
-
];
|
|
16
|
-
console.table(deviceInfo);
|
|
17
|
-
},
|
|
18
|
-
});
|
|
19
|
-
//# sourceMappingURL=device-control.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"device-control.js","sourceRoot":"","sources":["../../src/subcommands/device-control.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAC9C,qEAAuF;AAE1E,QAAA,oBAAoB,GAAG,IAAA,mBAAO,EAAC;IAC1C,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,EAAE;IACf,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI;QAClB,MAAM,UAAU,GAAG;YACjB,CAAC,iBAAiB,EAAE,GAAG,MAAM,CAAC,MAAM,IAAA,2BAAU,GAAE,CAAC,IAAI,CAAC;YACtD,CAAC,kBAAkB,EAAE,GAAG,MAAM,CAAC,MAAM,IAAA,4BAAW,GAAE,CAAC,IAAI,CAAC;YACxD,CAAC,oBAAoB,EAAE,GAAG,MAAM,CAAC,MAAM,IAAA,2BAAU,GAAE,CAAC,IAAI,CAAC;SAC1D,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-app.d.ts","sourceRoot":"","sources":["../../src/subcommands/test-app.ts"],"names":[],"mappings":""}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const path = require('path');
|
|
4
|
-
// export const installTestAppCliLeaf = CliLeaf({
|
|
5
|
-
// name: 'install-test-app',
|
|
6
|
-
// description: 'Install a test application',
|
|
7
|
-
// namedInputs: {
|
|
8
|
-
// project: CliStringInput({
|
|
9
|
-
// description: 'Project Id',
|
|
10
|
-
// }),
|
|
11
|
-
// version: CliStringInput({
|
|
12
|
-
// description: 'Version',
|
|
13
|
-
// }),
|
|
14
|
-
// },
|
|
15
|
-
// async action(_, opts) {
|
|
16
|
-
// const { project, version } = opts;
|
|
17
|
-
// const postfix = Math.random()
|
|
18
|
-
// .toString()
|
|
19
|
-
// .slice(2, 14);
|
|
20
|
-
// const projectId = project ? project : `16ad11bb-8c3a-4a15-923e-${postfix}`;
|
|
21
|
-
// const releaseVersion = version ? version : 'f43e816b30aa612f103fe73314f9716a436ce4f5';
|
|
22
|
-
// // Package test app
|
|
23
|
-
// const appDir = path.join('test', 'test-app');
|
|
24
|
-
// const spawner = JsSpawner({ path: appDir });
|
|
25
|
-
// const appPkg = await spawner.tar(...(await spawner.readdir()));
|
|
26
|
-
// await installApp({ projectId, appPkg, version: releaseVersion });
|
|
27
|
-
// },
|
|
28
|
-
// });
|
|
29
|
-
//# sourceMappingURL=test-app.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-app.js","sourceRoot":"","sources":["../../src/subcommands/test-app.ts"],"names":[],"mappings":";;AACA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAI7B,iDAAiD;AACjD,8BAA8B;AAC9B,+CAA+C;AAC/C,mBAAmB;AACnB,gCAAgC;AAChC,mCAAmC;AACnC,UAAU;AACV,gCAAgC;AAChC,gCAAgC;AAChC,UAAU;AACV,OAAO;AACP,4BAA4B;AAC5B,yCAAyC;AACzC,oCAAoC;AACpC,oBAAoB;AACpB,uBAAuB;AACvB,kFAAkF;AAClF,6FAA6F;AAC7F,0BAA0B;AAC1B,oDAAoD;AACpD,mDAAmD;AACnD,sEAAsE;AACtE,wEAAwE;AACxE,OAAO;AACP,MAAM"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Spawner } from './types';
|
|
2
|
-
export declare function GnuSpawner(context: {
|
|
3
|
-
resolvePath: Spawner['resolvePath'];
|
|
4
|
-
run: Spawner['run'];
|
|
5
|
-
runForegroundSync: Spawner['runForegroundSync'];
|
|
6
|
-
runForeground: Spawner['runForeground'];
|
|
7
|
-
runStreaming: Spawner['runStreaming'];
|
|
8
|
-
}): Spawner;
|
|
9
|
-
//# sourceMappingURL=gnu-spawner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gnu-spawner.d.ts","sourceRoot":"","sources":["../../../src/util/spawner/gnu-spawner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIlC,wBAAgB,UAAU,CAAC,OAAO,EAAE;IAClC,WAAW,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACpC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,iBAAiB,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChD,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACxC,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CACvC,GAAG,OAAO,CAuGV"}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GnuSpawner = void 0;
|
|
4
|
-
const coded_error_1 = require("@carnesen/coded-error");
|
|
5
|
-
const { Readable } = require('stream');
|
|
6
|
-
function GnuSpawner(context) {
|
|
7
|
-
const { resolvePath, run, runForegroundSync, runForeground, runStreaming } = context;
|
|
8
|
-
return {
|
|
9
|
-
run,
|
|
10
|
-
runForegroundSync,
|
|
11
|
-
runForeground,
|
|
12
|
-
runStreaming,
|
|
13
|
-
resolvePath,
|
|
14
|
-
readdir,
|
|
15
|
-
async readFile(path) {
|
|
16
|
-
const output = await run({
|
|
17
|
-
exe: 'cat',
|
|
18
|
-
args: [resolvePath(path)],
|
|
19
|
-
});
|
|
20
|
-
return output;
|
|
21
|
-
},
|
|
22
|
-
async writeFile(path, data) {
|
|
23
|
-
await run({
|
|
24
|
-
exe: 'dd',
|
|
25
|
-
args: [`of=${resolvePath(path)}`],
|
|
26
|
-
input: Readable.from(data),
|
|
27
|
-
});
|
|
28
|
-
},
|
|
29
|
-
async rename(oldPath, newPath) {
|
|
30
|
-
await run({
|
|
31
|
-
exe: 'mv',
|
|
32
|
-
args: [resolvePath(oldPath), resolvePath(newPath)],
|
|
33
|
-
});
|
|
34
|
-
},
|
|
35
|
-
mkdirp,
|
|
36
|
-
rimraf,
|
|
37
|
-
sanatizedrimraf,
|
|
38
|
-
tar,
|
|
39
|
-
untar,
|
|
40
|
-
exists,
|
|
41
|
-
};
|
|
42
|
-
async function mkdirp(path) {
|
|
43
|
-
await run({ exe: 'mkdir', args: ['-p', resolvePath(path)] });
|
|
44
|
-
}
|
|
45
|
-
async function readdir(path) {
|
|
46
|
-
let output;
|
|
47
|
-
const resolvedPath = resolvePath(path);
|
|
48
|
-
try {
|
|
49
|
-
output = await run({ exe: 'ls', args: ['-A1', resolvedPath] });
|
|
50
|
-
// ^^ The output looks like '/foo/bar.txt' if path is an existing file
|
|
51
|
-
// Else it looks like 'a b c' if the path is a directory with files/subdirs a, b, c.
|
|
52
|
-
}
|
|
53
|
-
catch (ex) {
|
|
54
|
-
if (ex &&
|
|
55
|
-
typeof ex.message === 'string' &&
|
|
56
|
-
ex.message.includes('No such file or directory')) {
|
|
57
|
-
ex.code = 'ENOENT';
|
|
58
|
-
}
|
|
59
|
-
throw ex;
|
|
60
|
-
}
|
|
61
|
-
if (output.startsWith('/')) {
|
|
62
|
-
throw new coded_error_1.CodedError(`ENOTDIR: not a directory "${resolvedPath}"`, 'ENOTDIR');
|
|
63
|
-
}
|
|
64
|
-
return output.length > 0 ? output.split('\n') : [];
|
|
65
|
-
}
|
|
66
|
-
async function rimraf(path) {
|
|
67
|
-
await run({ exe: 'rm', args: ['-rf', resolvePath(path)] });
|
|
68
|
-
}
|
|
69
|
-
async function sanatizedrimraf(path) {
|
|
70
|
-
const sanatizedPath = resolvePath(path).replace('*', '');
|
|
71
|
-
await run({ exe: 'rm', args: ['-rf', sanatizedPath] });
|
|
72
|
-
}
|
|
73
|
-
async function tar(...paths) {
|
|
74
|
-
return await runStreaming({
|
|
75
|
-
exe: 'tar',
|
|
76
|
-
args: ['-cz', ...paths],
|
|
77
|
-
cwd: resolvePath(),
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
async function untar(input, cwd = '.') {
|
|
81
|
-
await run({
|
|
82
|
-
exe: 'tar',
|
|
83
|
-
args: ['-xz'],
|
|
84
|
-
cwd,
|
|
85
|
-
input,
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
async function exists(path) {
|
|
89
|
-
if (!path) {
|
|
90
|
-
throw new Error('"path" is required');
|
|
91
|
-
}
|
|
92
|
-
try {
|
|
93
|
-
await run({ exe: 'stat', args: [resolvePath(path)] });
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
catch (ex) {
|
|
97
|
-
return false;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
exports.GnuSpawner = GnuSpawner;
|
|
102
|
-
//# sourceMappingURL=gnu-spawner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gnu-spawner.js","sourceRoot":"","sources":["../../../src/util/spawner/gnu-spawner.ts"],"names":[],"mappings":";;;AACA,uDAAmD;AACnD,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvC,SAAgB,UAAU,CAAC,OAM1B;IACC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAErF,OAAO;QACL,GAAG;QACH,iBAAiB;QACjB,aAAa;QACb,YAAY;QACZ,WAAW;QACX,OAAO;QACP,KAAK,CAAC,QAAQ,CAAC,IAAI;YACjB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC;gBACvB,GAAG,EAAE,KAAK;gBACV,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAC1B,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI;YACxB,MAAM,GAAG,CAAC;gBACR,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;aAC3B,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO;YAC3B,MAAM,GAAG,CAAC;gBACR,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;QACD,MAAM;QACN,MAAM;QACN,eAAe;QACf,GAAG;QACH,KAAK;QACL,MAAM;KACP,CAAC;IAEF,KAAK,UAAU,MAAM,CAAC,IAAa;QACjC,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,UAAU,OAAO,CAAC,IAAa;QAClC,IAAI,MAAc,CAAC;QACnB,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI;YACF,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;YAC/D,sEAAsE;YACtE,oFAAoF;SACrF;QAAC,OAAO,EAAE,EAAE;YACX,IACE,EAAE;gBACF,OAAO,EAAE,CAAC,OAAO,KAAK,QAAQ;gBAC9B,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAChD;gBACA,EAAE,CAAC,IAAI,GAAG,QAAQ,CAAC;aACpB;YACD,MAAM,EAAE,CAAC;SACV;QACD,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC1B,MAAM,IAAI,wBAAU,CAAC,6BAA6B,YAAY,GAAG,EAAE,SAAS,CAAC,CAAC;SAC/E;QACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,CAAC;IAED,KAAK,UAAU,MAAM,CAAC,IAAa;QACjC,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,UAAU,eAAe,CAAC,IAAa;QAC1C,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAEzD,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,UAAU,GAAG,CAAC,GAAG,KAAe;QACnC,OAAO,MAAM,YAAY,CAAC;YACxB,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC;YACvB,GAAG,EAAE,WAAW,EAAE;SACnB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,KAAK,CAAC,KAA4B,EAAE,GAAG,GAAG,GAAG;QAC1D,MAAM,GAAG,CAAC;YACR,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,CAAC,KAAK,CAAC;YACb,GAAG;YACH,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,MAAM,CAAC,IAAY;QAChC,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACvC;QACD,IAAI;YACF,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC;SACb;QAAC,OAAO,EAAE,EAAE;YACX,OAAO,KAAK,CAAC;SACd;IACH,CAAC;AACH,CAAC;AA7GD,gCA6GC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"js-spawner.d.ts","sourceRoot":"","sources":["../../../src/util/spawner/js-spawner.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAO,MAAM,SAAS,CAAC;AAKvC,wBAAgB,SAAS,CAAC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAyFlE"}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.JsSpawner = void 0;
|
|
4
|
-
const fs_1 = require("fs");
|
|
5
|
-
const util_1 = require("util");
|
|
6
|
-
const path_1 = require("path");
|
|
7
|
-
const tarJs = require("tar");
|
|
8
|
-
const mkdirpJs = require("mkdirp");
|
|
9
|
-
const rimrafJs = require("rimraf");
|
|
10
|
-
const spawner_base_1 = require("../spawner-base");
|
|
11
|
-
const gnu_spawner_1 = require("./gnu-spawner");
|
|
12
|
-
const pump = require("pump");
|
|
13
|
-
function JsSpawner(context = {}) {
|
|
14
|
-
const gnuSpawner = (0, gnu_spawner_1.GnuSpawner)(Object.assign({ resolvePath }, (0, spawner_base_1.SpawnerBase)(translate)));
|
|
15
|
-
return Object.assign(Object.assign({}, gnuSpawner), { resolvePath,
|
|
16
|
-
readdir,
|
|
17
|
-
async readFile(path) {
|
|
18
|
-
return await (0, util_1.promisify)(fs_1.readFile)(resolvePath(path), { encoding: 'utf8' });
|
|
19
|
-
},
|
|
20
|
-
async writeFile(path, data) {
|
|
21
|
-
await (0, util_1.promisify)(fs_1.writeFile)(resolvePath(path), data, { encoding: 'utf8' });
|
|
22
|
-
},
|
|
23
|
-
mkdirp,
|
|
24
|
-
rimraf,
|
|
25
|
-
tar,
|
|
26
|
-
async rename(oldPath, newPath) {
|
|
27
|
-
await (0, util_1.promisify)(fs_1.rename)(resolvePath(oldPath), resolvePath(newPath));
|
|
28
|
-
},
|
|
29
|
-
async untar(input, cwd) {
|
|
30
|
-
await new Promise((resolve, reject) => {
|
|
31
|
-
const writable = tarJs.extract({ cwd: resolvePath(cwd) });
|
|
32
|
-
pump(input, writable, err => {
|
|
33
|
-
if (err) {
|
|
34
|
-
reject(err);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
resolve();
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
},
|
|
42
|
-
exists });
|
|
43
|
-
function resolvePath(...paths) {
|
|
44
|
-
return (0, path_1.resolve)(context.path || '', ...paths.map(path => path || ''));
|
|
45
|
-
}
|
|
46
|
-
function translate(cmd) {
|
|
47
|
-
if (cmd.superuser) {
|
|
48
|
-
throw new Error(`${JsSpawner.name} does not support cmd option "superuser"`);
|
|
49
|
-
}
|
|
50
|
-
const translated = Object.assign({}, cmd);
|
|
51
|
-
if (cmd.cwd) {
|
|
52
|
-
translated.cwd = resolvePath(cmd.cwd);
|
|
53
|
-
}
|
|
54
|
-
return translated;
|
|
55
|
-
}
|
|
56
|
-
async function mkdirp(path = '') {
|
|
57
|
-
await mkdirpJs(resolvePath(path));
|
|
58
|
-
}
|
|
59
|
-
async function rimraf(path = '') {
|
|
60
|
-
await (0, util_1.promisify)(rimrafJs)(resolvePath(path));
|
|
61
|
-
}
|
|
62
|
-
function readdir(path = '') {
|
|
63
|
-
return (0, util_1.promisify)(fs_1.readdir)(resolvePath(path));
|
|
64
|
-
}
|
|
65
|
-
async function tar(...paths) {
|
|
66
|
-
for (const path in paths) {
|
|
67
|
-
if ((0, path_1.isAbsolute)(path)) {
|
|
68
|
-
throw new Error('Paths passed to spawner.tar must not be absolute');
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
const packageStream = tarJs.create({ sync: true, gzip: true, cwd: resolvePath() }, paths);
|
|
72
|
-
// ^^ The @types for tar.create are not correct
|
|
73
|
-
return packageStream;
|
|
74
|
-
}
|
|
75
|
-
async function exists(path) {
|
|
76
|
-
if (!path) {
|
|
77
|
-
throw new Error('path is mandatory');
|
|
78
|
-
}
|
|
79
|
-
try {
|
|
80
|
-
await (0, util_1.promisify)(fs_1.access)(resolvePath(path));
|
|
81
|
-
return true;
|
|
82
|
-
}
|
|
83
|
-
catch (ex) {
|
|
84
|
-
return false;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
exports.JsSpawner = JsSpawner;
|
|
89
|
-
//# sourceMappingURL=js-spawner.js.map
|