@datatruck/cli 0.3.2 → 0.4.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.
- package/Action/ConfigAction.d.ts +6 -1
- package/Action/ConfigAction.js +17 -1
- package/CHANGELOG.md +6 -0
- package/Command/BackupCommand.js +1 -5
- package/Command/BackupSessionsCommand.js +1 -5
- package/Command/CommandAbstract.d.ts +2 -1
- package/Command/ConfigCommand.js +1 -5
- package/Command/InitCommand.js +1 -5
- package/Command/PruneCommand.js +1 -5
- package/Command/RestoreCommand.js +1 -5
- package/Command/RestoreSessionsCommand.js +1 -5
- package/Command/SnapshotsCommand.js +1 -5
- package/Config/Config.d.ts +1 -0
- package/Config/Config.js +1 -0
- package/cli.js +18 -1
- package/config.schema.json +3 -0
- package/globalData.d.ts +5 -0
- package/globalData.js +7 -0
- package/package.json +1 -1
- package/util/fs-util.js +5 -3
package/Action/ConfigAction.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { GlobalOptionsType } from "../Command/CommandAbstract";
|
|
1
2
|
import type { ConfigType } from "../Config/Config";
|
|
2
3
|
import { IfRequireKeys } from "../util/ts-util";
|
|
3
4
|
export declare type ConfigActionOptionsType = {
|
|
@@ -10,5 +11,9 @@ export declare class ConfigAction<TRequired extends boolean = true> {
|
|
|
10
11
|
static validate(config: ConfigType): void;
|
|
11
12
|
static check(config: ConfigType): void;
|
|
12
13
|
static normalize(config: ConfigType): ConfigType;
|
|
13
|
-
|
|
14
|
+
static fromGlobalOptions(globalOptions: GlobalOptionsType<true>): Promise<ConfigType>;
|
|
15
|
+
exec(): Promise<{
|
|
16
|
+
path: string;
|
|
17
|
+
data: ConfigType;
|
|
18
|
+
}>;
|
|
14
19
|
}
|
package/Action/ConfigAction.js
CHANGED
|
@@ -53,12 +53,28 @@ class ConfigAction {
|
|
|
53
53
|
});
|
|
54
54
|
return config;
|
|
55
55
|
}
|
|
56
|
+
static async fromGlobalOptions(globalOptions) {
|
|
57
|
+
if (typeof globalOptions.config === "string") {
|
|
58
|
+
const configAction = new ConfigAction({
|
|
59
|
+
path: globalOptions.config,
|
|
60
|
+
verbose: !!globalOptions.verbose && globalOptions.verbose > 0,
|
|
61
|
+
});
|
|
62
|
+
const result = await configAction.exec();
|
|
63
|
+
return result.data;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
return globalOptions.config;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
56
69
|
async exec() {
|
|
57
70
|
const path = await (0, fs_util_1.findFile)(this.options.path, "datatruck.config", fs_util_1.parseFileExtensions, "Config path not found");
|
|
58
71
|
const config = await (0, fs_util_1.parseFile)(path, "config");
|
|
59
72
|
ConfigAction.validate(config);
|
|
60
73
|
ConfigAction.check(config);
|
|
61
|
-
return
|
|
74
|
+
return {
|
|
75
|
+
path,
|
|
76
|
+
data: ConfigAction.normalize(config),
|
|
77
|
+
};
|
|
62
78
|
}
|
|
63
79
|
}
|
|
64
80
|
exports.ConfigAction = ConfigAction;
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @datatruck/cli
|
|
2
2
|
|
|
3
|
+
## 0.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`eeb00a6`](https://github.com/swordev/datatruck/commit/eeb00a69d75c91da40711ae79475612b1d5193b6) Thanks [@juanrgm](https://github.com/juanrgm)! - Add `tempDir` config option
|
|
8
|
+
|
|
3
9
|
## 0.3.2
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
package/Command/BackupCommand.js
CHANGED
|
@@ -44,11 +44,7 @@ class BackupCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
44
44
|
}
|
|
45
45
|
async onExec() {
|
|
46
46
|
const verbose = this.globalOptions.verbose ?? 0;
|
|
47
|
-
const
|
|
48
|
-
path: this.globalOptions.config,
|
|
49
|
-
verbose: verbose > 0,
|
|
50
|
-
});
|
|
51
|
-
const config = await configAction.exec();
|
|
47
|
+
const config = await ConfigAction_1.ConfigAction.fromGlobalOptions(this.globalOptions);
|
|
52
48
|
const backup = new BackupAction_1.BackupAction(config, {
|
|
53
49
|
packageNames: this.options.package,
|
|
54
50
|
repositoryNames: this.options.repository,
|
|
@@ -37,11 +37,7 @@ class BackupSessionsCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
37
37
|
}
|
|
38
38
|
async onExec() {
|
|
39
39
|
const verbose = this.globalOptions.verbose ?? 0;
|
|
40
|
-
const
|
|
41
|
-
path: this.globalOptions.config,
|
|
42
|
-
verbose: verbose > 0,
|
|
43
|
-
});
|
|
44
|
-
const config = await configAction.exec();
|
|
40
|
+
const config = await ConfigAction_1.ConfigAction.fromGlobalOptions(this.globalOptions);
|
|
45
41
|
const action = new BackupSessionsAction_1.BackupSessionsAction(config, {
|
|
46
42
|
packageNames: this.options.package,
|
|
47
43
|
repositoryNames: this.options.repository,
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { ConfigType } from "../Config/Config";
|
|
1
2
|
import { FormatType } from "../util/DataFormat";
|
|
2
3
|
import { OptionsType } from "../util/cli-util";
|
|
3
4
|
import { SimilarObject } from "../util/ts-util";
|
|
4
5
|
export declare type GlobalOptionsType<TResolved = false> = {
|
|
5
|
-
config: string;
|
|
6
|
+
config: string | ConfigType;
|
|
6
7
|
outputFormat?: FormatType;
|
|
7
8
|
verbose?: number;
|
|
8
9
|
};
|
package/Command/ConfigCommand.js
CHANGED
|
@@ -27,11 +27,7 @@ class ConfigCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
29
|
async onExec() {
|
|
30
|
-
const
|
|
31
|
-
path: this.globalOptions.config,
|
|
32
|
-
verbose: !!this.globalOptions.verbose,
|
|
33
|
-
});
|
|
34
|
-
const config = await configAction.exec();
|
|
30
|
+
const config = await ConfigAction_1.ConfigAction.fromGlobalOptions(this.globalOptions);
|
|
35
31
|
const packages = (0, config_util_1.filterPackages)(config, {
|
|
36
32
|
packageNames: this.options.package,
|
|
37
33
|
repositoryNames: this.options.repository,
|
package/Command/InitCommand.js
CHANGED
|
@@ -25,11 +25,7 @@ class InitCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
25
25
|
}
|
|
26
26
|
async onExec() {
|
|
27
27
|
const verbose = this.globalOptions.verbose ?? 0;
|
|
28
|
-
const
|
|
29
|
-
path: this.globalOptions.config,
|
|
30
|
-
verbose: verbose > 0,
|
|
31
|
-
});
|
|
32
|
-
const config = await configAction.exec();
|
|
28
|
+
const config = await ConfigAction_1.ConfigAction.fromGlobalOptions(this.globalOptions);
|
|
33
29
|
const init = new InitAction_1.InitAction(config, {
|
|
34
30
|
repositoryNames: this.options.repository,
|
|
35
31
|
repositoryTypes: this.options.repositoryType,
|
package/Command/PruneCommand.js
CHANGED
|
@@ -101,11 +101,7 @@ class PruneCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
101
101
|
}
|
|
102
102
|
async onExec() {
|
|
103
103
|
const verbose = this.globalOptions.verbose ?? 0;
|
|
104
|
-
const
|
|
105
|
-
path: this.globalOptions.config,
|
|
106
|
-
verbose: verbose > 0,
|
|
107
|
-
});
|
|
108
|
-
const config = await configAction.exec();
|
|
104
|
+
const config = await ConfigAction_1.ConfigAction.fromGlobalOptions(this.globalOptions);
|
|
109
105
|
const prune = new PruneAction_1.PruneAction(config, {
|
|
110
106
|
ids: this.options.id,
|
|
111
107
|
packageNames: this.options.package,
|
|
@@ -40,11 +40,7 @@ class RestoreCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
40
40
|
}
|
|
41
41
|
async onExec() {
|
|
42
42
|
const verbose = this.globalOptions.verbose ?? 0;
|
|
43
|
-
const
|
|
44
|
-
path: this.globalOptions.config,
|
|
45
|
-
verbose: verbose > 0,
|
|
46
|
-
});
|
|
47
|
-
const config = await configAction.exec();
|
|
43
|
+
const config = await ConfigAction_1.ConfigAction.fromGlobalOptions(this.globalOptions);
|
|
48
44
|
const restore = new RestoreAction_1.RestoreAction(config, {
|
|
49
45
|
snapshotId: this.options.id,
|
|
50
46
|
packageNames: this.options.package,
|
|
@@ -37,11 +37,7 @@ class RestoreSessionsCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
37
37
|
}
|
|
38
38
|
async onExec() {
|
|
39
39
|
const verbose = this.globalOptions.verbose ?? 0;
|
|
40
|
-
const
|
|
41
|
-
path: this.globalOptions.config,
|
|
42
|
-
verbose: verbose > 0,
|
|
43
|
-
});
|
|
44
|
-
const config = await configAction.exec();
|
|
40
|
+
const config = await ConfigAction_1.ConfigAction.fromGlobalOptions(this.globalOptions);
|
|
45
41
|
const action = new RestoreSessionsAction_1.RestoreSessionsAction(config, {
|
|
46
42
|
packageNames: this.options.package,
|
|
47
43
|
repositoryNames: this.options.repository,
|
|
@@ -83,11 +83,7 @@ class SnapshotsCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
83
83
|
}
|
|
84
84
|
async onExec() {
|
|
85
85
|
const verbose = this.globalOptions.verbose ?? 0;
|
|
86
|
-
const
|
|
87
|
-
path: this.globalOptions.config,
|
|
88
|
-
verbose: verbose > 0,
|
|
89
|
-
});
|
|
90
|
-
const config = await configAction.exec();
|
|
86
|
+
const config = await ConfigAction_1.ConfigAction.fromGlobalOptions(this.globalOptions);
|
|
91
87
|
const snapshots = new SnapshotsAction_1.SnapshotsAction(config, {
|
|
92
88
|
ids: this.options.id,
|
|
93
89
|
packageNames: this.options.package,
|
package/Config/Config.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { PackageConfigType } from "./PackageConfig";
|
|
|
2
2
|
import { RepositoryConfigType } from "./RepositoryConfig";
|
|
3
3
|
import type { JSONSchema7 } from "json-schema";
|
|
4
4
|
export declare type ConfigType = {
|
|
5
|
+
tempDir?: string;
|
|
5
6
|
repositories: RepositoryConfigType[];
|
|
6
7
|
packages: PackageConfigType[];
|
|
7
8
|
};
|
package/Config/Config.js
CHANGED
package/cli.js
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.exec = exports.parseArgs = exports.buildArgs = void 0;
|
|
7
|
+
const ConfigAction_1 = require("./Action/ConfigAction");
|
|
4
8
|
const AppError_1 = require("./Error/AppError");
|
|
5
9
|
const CommandFactory_1 = require("./Factory/CommandFactory");
|
|
10
|
+
const globalData_1 = __importDefault(require("./globalData"));
|
|
6
11
|
const cli_util_1 = require("./util/cli-util");
|
|
7
12
|
const fs_util_1 = require("./util/fs-util");
|
|
8
13
|
const process_util_1 = require("./util/process-util");
|
|
@@ -35,7 +40,19 @@ function makeCommandAction(command) {
|
|
|
35
40
|
let exitCode = 1;
|
|
36
41
|
const globalOptions = getGlobalOptions();
|
|
37
42
|
try {
|
|
38
|
-
|
|
43
|
+
const configAction = new ConfigAction_1.ConfigAction({
|
|
44
|
+
path: globalOptions.config,
|
|
45
|
+
verbose: !!globalOptions.verbose,
|
|
46
|
+
});
|
|
47
|
+
const config = await configAction.exec();
|
|
48
|
+
if (config.data.tempDir)
|
|
49
|
+
globalData_1.default.tempDir = (0, path_1.isAbsolute)(config.data.tempDir)
|
|
50
|
+
? config.data.tempDir
|
|
51
|
+
: (0, path_1.join)((0, path_1.dirname)(config.path), config.data.tempDir);
|
|
52
|
+
exitCode = await (0, CommandFactory_1.CommandFactory)(command, {
|
|
53
|
+
...globalOptions,
|
|
54
|
+
config: config.data,
|
|
55
|
+
}, options).onExec();
|
|
39
56
|
}
|
|
40
57
|
catch (e) {
|
|
41
58
|
const error = e;
|
package/config.schema.json
CHANGED
package/globalData.d.ts
ADDED
package/globalData.js
ADDED
package/package.json
CHANGED
package/util/fs-util.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.writePathLists = exports.writeGitIgnoreList = exports.forEachFile = exports.checkDir = exports.checkFile = exports.readPartialFile = exports.mkTmpDir = exports.tmpDir = exports.sessionTmpDir = exports.parentTmpDir = exports.existsFile = exports.findFile = exports.parsePackageFile = exports.parseFile = exports.parseFileExtensions = exports.readdirIfExists = exports.writeJSONFile = exports.existsDir = exports.ensureEmptyDir = exports.mkdirIfNotExists = exports.isDirEmpty = exports.isLocalDir = void 0;
|
|
7
|
+
const globalData_1 = __importDefault(require("../globalData"));
|
|
4
8
|
const path_util_1 = require("./path-util");
|
|
5
9
|
const crypto_1 = require("crypto");
|
|
6
10
|
const fs_1 = require("fs");
|
|
@@ -8,7 +12,6 @@ const fs_2 = require("fs");
|
|
|
8
12
|
const fs_extra_1 = require("fs-extra");
|
|
9
13
|
const promises_1 = require("fs/promises");
|
|
10
14
|
const micromatch_1 = require("micromatch");
|
|
11
|
-
const os_1 = require("os");
|
|
12
15
|
const path_1 = require("path");
|
|
13
16
|
const path_2 = require("path");
|
|
14
17
|
function isLocalDir(path) {
|
|
@@ -110,8 +113,7 @@ async function existsFile(path) {
|
|
|
110
113
|
}
|
|
111
114
|
exports.existsFile = existsFile;
|
|
112
115
|
function parentTmpDir() {
|
|
113
|
-
|
|
114
|
-
return (0, path_1.join)(tmpDir, "datatruck");
|
|
116
|
+
return (0, path_1.join)(globalData_1.default.tempDir, "datatruck-temp");
|
|
115
117
|
}
|
|
116
118
|
exports.parentTmpDir = parentTmpDir;
|
|
117
119
|
function sessionTmpDir() {
|