@datatruck/cli 0.11.7 → 0.13.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/RestoreAction.d.ts +1 -0
- package/Action/RestoreAction.js +19 -12
- package/Action/SnapshotsAction.d.ts +1 -0
- package/Action/SnapshotsAction.js +11 -4
- package/Command/BackupCommand.js +7 -5
- package/Command/BackupSessionsCommand.js +3 -3
- package/Command/CommandAbstract.d.ts +2 -0
- package/Command/ConfigCommand.js +4 -4
- package/Command/InitCommand.js +2 -2
- package/Command/PruneCommand.js +5 -5
- package/Command/RestoreCommand.d.ts +1 -0
- package/Command/RestoreCommand.js +13 -6
- package/Command/RestoreSessionsCommand.js +3 -3
- package/Command/SnapshotsCommand.d.ts +1 -0
- package/Command/SnapshotsCommand.js +29 -18
- package/Config/PackageRepositoryConfig.d.ts +3 -3
- package/Config/PackageRepositoryConfig.js +2 -2
- package/Config/RepositoryConfig.d.ts +3 -3
- package/Config/RepositoryConfig.js +2 -2
- package/Factory/RepositoryFactory.js +3 -3
- package/JsonSchema/DefinitionEnum.d.ts +2 -2
- package/JsonSchema/DefinitionEnum.js +2 -2
- package/JsonSchema/JsonSchema.js +3 -3
- package/Repository/{LocalRepository.d.ts → DatatruckRepository.d.ts} +10 -9
- package/Repository/{LocalRepository.js → DatatruckRepository.js} +16 -14
- package/Repository/GitRepository.js +3 -0
- package/Repository/RepositoryAbstract.d.ts +4 -1
- package/Repository/RepositoryAbstract.js +1 -0
- package/Repository/ResticRepository.js +25 -1
- package/SessionDriver/ConsoleSessionDriver.d.ts +8 -2
- package/SessionDriver/ConsoleSessionDriver.js +18 -10
- package/SessionDriver/SessionDriverAbstract.d.ts +6 -7
- package/cli.js +2 -0
- package/config.schema.json +6 -6
- package/package.json +3 -1
- package/util/ResticUtil.d.ts +9 -2
- package/util/ResticUtil.js +47 -20
- package/util/datatruck/config-util.d.ts +6 -6
- package/util/fs-util.d.ts +1 -0
- package/util/fs-util.js +7 -1
- package/util/process-util.js +3 -1
package/Action/RestoreAction.js
CHANGED
|
@@ -9,6 +9,7 @@ const config_util_1 = require("../util/datatruck/config-util");
|
|
|
9
9
|
const fs_util_1 = require("../util/fs-util");
|
|
10
10
|
const object_util_1 = require("../util/object-util");
|
|
11
11
|
const process_util_1 = require("../util/process-util");
|
|
12
|
+
const SnapshotsAction_1 = require("./SnapshotsAction");
|
|
12
13
|
const assert_1 = require("assert");
|
|
13
14
|
const os_1 = require("os");
|
|
14
15
|
class RestoreAction {
|
|
@@ -26,8 +27,9 @@ class RestoreAction {
|
|
|
26
27
|
}
|
|
27
28
|
async init(session, snapshotId, snapshots) {
|
|
28
29
|
await session.initDrivers();
|
|
29
|
-
for (const [, pkg] of snapshots) {
|
|
30
|
-
|
|
30
|
+
for (const [snapshot, pkg] of snapshots) {
|
|
31
|
+
if (!pkg)
|
|
32
|
+
throw new AppError_1.AppError(`Package config not found: ${snapshot.packageName}`);
|
|
31
33
|
const sessionId = await session.init({
|
|
32
34
|
snapshotId: snapshotId,
|
|
33
35
|
packageName: pkg.name,
|
|
@@ -56,17 +58,22 @@ class RestoreAction {
|
|
|
56
58
|
if (this.options.repositoryTypes &&
|
|
57
59
|
!this.options.repositoryTypes.includes(repository.type))
|
|
58
60
|
continue;
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
},
|
|
61
|
+
const snapshotsAction = new SnapshotsAction_1.SnapshotsAction(this.config, {
|
|
62
|
+
repositoryNames: [repository.name],
|
|
63
|
+
ids: [this.options.snapshotId],
|
|
64
|
+
packageNames: this.options.packageNames,
|
|
65
|
+
packageTaskNames: this.options.packageTaskNames,
|
|
66
|
+
packageConfig: this.options.packageConfig,
|
|
67
|
+
tags: this.options.tags,
|
|
67
68
|
});
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
const snapshots = await snapshotsAction.exec("restore");
|
|
70
|
+
result.push(...snapshots.map((ss) => ({
|
|
71
|
+
date: ss.date,
|
|
72
|
+
id: ss.id,
|
|
73
|
+
originalId: ss.originalId,
|
|
74
|
+
packageName: ss.packageName,
|
|
75
|
+
packageTaskName: ss.packageTaskName,
|
|
76
|
+
tags: ss.tags,
|
|
70
77
|
repositoryName: repository.name,
|
|
71
78
|
})));
|
|
72
79
|
}
|
|
@@ -23,12 +23,19 @@ class SnapshotsAction {
|
|
|
23
23
|
!this.options.repositoryTypes.includes(repo.type))
|
|
24
24
|
continue;
|
|
25
25
|
const repoInstance = (0, RepositoryFactory_1.RepositoryFactory)(repo);
|
|
26
|
+
const configPackageNames = this.config.packages.map((pkg) => pkg.name);
|
|
27
|
+
const packageNames = this.options.packageConfig
|
|
28
|
+
? this.options.packageNames?.filter((name) => configPackageNames.includes(name)) || configPackageNames
|
|
29
|
+
: this.options.packageNames;
|
|
26
30
|
const snapshots = await repoInstance.onSnapshots({
|
|
27
|
-
options:
|
|
31
|
+
options: {
|
|
32
|
+
...this.options,
|
|
33
|
+
packageNames,
|
|
34
|
+
},
|
|
28
35
|
});
|
|
29
|
-
const extentedItems = snapshots.map((
|
|
30
|
-
...
|
|
31
|
-
shortId:
|
|
36
|
+
const extentedItems = snapshots.map((ss) => ({
|
|
37
|
+
...ss,
|
|
38
|
+
shortId: ss.id.slice(0, 8),
|
|
32
39
|
repositoryName: repo.name,
|
|
33
40
|
repositoryType: repo.type,
|
|
34
41
|
}));
|
package/Command/BackupCommand.js
CHANGED
|
@@ -17,27 +17,27 @@ class BackupCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
17
17
|
option: "--dryRun",
|
|
18
18
|
},
|
|
19
19
|
package: {
|
|
20
|
-
description: "
|
|
20
|
+
description: "Filter by package names",
|
|
21
21
|
option: "-p,--package <values>",
|
|
22
22
|
parser: string_util_1.parseStringList,
|
|
23
23
|
},
|
|
24
24
|
packageTask: {
|
|
25
|
-
description: "
|
|
25
|
+
description: "Filter by package task names",
|
|
26
26
|
option: "-pt,--package-task <values>",
|
|
27
27
|
parser: string_util_1.parseStringList,
|
|
28
28
|
},
|
|
29
29
|
repository: {
|
|
30
|
-
description: "
|
|
30
|
+
description: "Filter by repository names",
|
|
31
31
|
option: "-r,--repository <values>",
|
|
32
32
|
parser: string_util_1.parseStringList,
|
|
33
33
|
},
|
|
34
34
|
repositoryType: {
|
|
35
|
-
description: "
|
|
35
|
+
description: "Filter by repository types",
|
|
36
36
|
option: "-rt,--repository-type <values>",
|
|
37
37
|
parser: (v) => (0, string_util_1.parseStringList)(v),
|
|
38
38
|
},
|
|
39
39
|
tag: {
|
|
40
|
-
description: "
|
|
40
|
+
description: "Filter by tags",
|
|
41
41
|
option: "-t,--tag <values>",
|
|
42
42
|
parser: string_util_1.parseStringList,
|
|
43
43
|
},
|
|
@@ -67,6 +67,8 @@ class BackupCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
67
67
|
altDrivers: [
|
|
68
68
|
new ConsoleSessionDriver_1.ConsoleSessionDriver({
|
|
69
69
|
verbose: verbose > 0,
|
|
70
|
+
progress: this.globalOptions.progress,
|
|
71
|
+
progressInterval: this.globalOptions.progressInterval,
|
|
70
72
|
}),
|
|
71
73
|
],
|
|
72
74
|
});
|
|
@@ -13,17 +13,17 @@ class BackupSessionsCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
13
13
|
onOptions() {
|
|
14
14
|
return this.returnsOptions({
|
|
15
15
|
package: {
|
|
16
|
-
description: "
|
|
16
|
+
description: "Filter by package names",
|
|
17
17
|
option: "-p,--package <values>",
|
|
18
18
|
parser: string_util_1.parseStringList,
|
|
19
19
|
},
|
|
20
20
|
repository: {
|
|
21
|
-
description: "
|
|
21
|
+
description: "Filter by repository names",
|
|
22
22
|
option: "-r,--repository <values>",
|
|
23
23
|
parser: string_util_1.parseStringList,
|
|
24
24
|
},
|
|
25
25
|
tag: {
|
|
26
|
-
description: "
|
|
26
|
+
description: "Filter by tags",
|
|
27
27
|
option: "-t,--tag <values>",
|
|
28
28
|
parser: string_util_1.parseStringList,
|
|
29
29
|
},
|
|
@@ -6,6 +6,8 @@ export declare type GlobalOptionsType<TResolved = false> = {
|
|
|
6
6
|
config: string | ConfigType;
|
|
7
7
|
outputFormat?: FormatType;
|
|
8
8
|
verbose?: number;
|
|
9
|
+
progress?: "auto" | "plain" | "tty";
|
|
10
|
+
progressInterval?: number;
|
|
9
11
|
};
|
|
10
12
|
export declare type CommandConstructorType<TUnresolvedOptions, TOptions extends SimilarObject<TUnresolvedOptions>> = {
|
|
11
13
|
new (globalOptions: GlobalOptionsType<true>, options: TOptions): CommandAbstract<TUnresolvedOptions, TOptions>;
|
package/Command/ConfigCommand.js
CHANGED
|
@@ -10,22 +10,22 @@ class ConfigCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
10
10
|
onOptions() {
|
|
11
11
|
return this.returnsOptions({
|
|
12
12
|
package: {
|
|
13
|
-
description: "
|
|
13
|
+
description: "Filter by package names",
|
|
14
14
|
option: "-p,--package <values>",
|
|
15
15
|
parser: string_util_1.parseStringList,
|
|
16
16
|
},
|
|
17
17
|
packageTask: {
|
|
18
|
-
description: "
|
|
18
|
+
description: "Filter by package task names",
|
|
19
19
|
option: "-pt,--package-task <values>",
|
|
20
20
|
parser: string_util_1.parseStringList,
|
|
21
21
|
},
|
|
22
22
|
repository: {
|
|
23
|
-
description: "
|
|
23
|
+
description: "Filter by repository names",
|
|
24
24
|
option: "-r,--repository <values>",
|
|
25
25
|
parser: string_util_1.parseStringList,
|
|
26
26
|
},
|
|
27
27
|
repositoryType: {
|
|
28
|
-
description: "
|
|
28
|
+
description: "Filter by repository types",
|
|
29
29
|
option: "-rt,--repository-type <values>",
|
|
30
30
|
parser: (v) => (0, string_util_1.parseStringList)(v),
|
|
31
31
|
},
|
package/Command/InitCommand.js
CHANGED
|
@@ -12,12 +12,12 @@ class InitCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
12
12
|
onOptions() {
|
|
13
13
|
return this.returnsOptions({
|
|
14
14
|
repository: {
|
|
15
|
-
description: "
|
|
15
|
+
description: "Filter by repository names",
|
|
16
16
|
option: "-r,--repository <values>",
|
|
17
17
|
parser: string_util_1.parseStringList,
|
|
18
18
|
},
|
|
19
19
|
repositoryType: {
|
|
20
|
-
description: "
|
|
20
|
+
description: "Filter by repository types",
|
|
21
21
|
option: "-rt,--repository-type <values>",
|
|
22
22
|
parser: (v) => (0, string_util_1.parseStringList)(v),
|
|
23
23
|
},
|
package/Command/PruneCommand.js
CHANGED
|
@@ -26,7 +26,7 @@ class PruneCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
26
26
|
]),
|
|
27
27
|
},
|
|
28
28
|
id: {
|
|
29
|
-
description: "
|
|
29
|
+
description: "Filter by snapshot id",
|
|
30
30
|
option: "-i,--id",
|
|
31
31
|
parser: string_util_1.parseStringList,
|
|
32
32
|
},
|
|
@@ -70,22 +70,22 @@ class PruneCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
70
70
|
option: "--longId",
|
|
71
71
|
},
|
|
72
72
|
package: {
|
|
73
|
-
description: "
|
|
73
|
+
description: "Filter by package names",
|
|
74
74
|
option: "-p,--package <values>",
|
|
75
75
|
parser: string_util_1.parseStringList,
|
|
76
76
|
},
|
|
77
77
|
repository: {
|
|
78
|
-
description: "
|
|
78
|
+
description: "Filter by repository names",
|
|
79
79
|
option: "-r,--repository <values>",
|
|
80
80
|
parser: string_util_1.parseStringList,
|
|
81
81
|
},
|
|
82
82
|
repositoryType: {
|
|
83
|
-
description: "
|
|
83
|
+
description: "Filter by repository types",
|
|
84
84
|
option: "-rt,--repository-type <values>",
|
|
85
85
|
parser: (v) => (0, string_util_1.parseStringList)(v),
|
|
86
86
|
},
|
|
87
87
|
tag: {
|
|
88
|
-
description: "
|
|
88
|
+
description: "Filter by tags",
|
|
89
89
|
option: "-t,--tag <values>",
|
|
90
90
|
parser: string_util_1.parseStringList,
|
|
91
91
|
},
|
|
@@ -5,6 +5,7 @@ export declare type RestoreCommandOptionsType<TResolved = false> = {
|
|
|
5
5
|
id: string;
|
|
6
6
|
package?: If<TResolved, string[]>;
|
|
7
7
|
packageTask?: If<TResolved, string[]>;
|
|
8
|
+
packageConfig?: boolean;
|
|
8
9
|
repository?: If<TResolved, string[]>;
|
|
9
10
|
repositoryType?: If<TResolved, RepositoryConfigType["type"][]>;
|
|
10
11
|
tag?: If<TResolved, string[]>;
|
|
@@ -12,32 +12,36 @@ class RestoreCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
12
12
|
onOptions() {
|
|
13
13
|
return this.returnsOptions({
|
|
14
14
|
id: {
|
|
15
|
-
description: "
|
|
15
|
+
description: "Filter by snapshot id",
|
|
16
16
|
option: "-i,--id <id>",
|
|
17
17
|
required: true,
|
|
18
18
|
},
|
|
19
19
|
package: {
|
|
20
|
-
description: "
|
|
20
|
+
description: "Filter by package names",
|
|
21
21
|
option: "-p,--package <values>",
|
|
22
22
|
parser: string_util_1.parseStringList,
|
|
23
23
|
},
|
|
24
24
|
packageTask: {
|
|
25
|
-
description: "
|
|
25
|
+
description: "Filter by package task names",
|
|
26
26
|
option: "-pt,--package-task <values>",
|
|
27
27
|
parser: string_util_1.parseStringList,
|
|
28
28
|
},
|
|
29
|
+
packageConfig: {
|
|
30
|
+
description: "Filter by package config",
|
|
31
|
+
option: "-pc,--package-config",
|
|
32
|
+
},
|
|
29
33
|
repository: {
|
|
30
|
-
description: "
|
|
34
|
+
description: "Filter by repository names",
|
|
31
35
|
option: "-r,--repository <values>",
|
|
32
36
|
parser: string_util_1.parseStringList,
|
|
33
37
|
},
|
|
34
38
|
repositoryType: {
|
|
35
|
-
description: "
|
|
39
|
+
description: "Filter by repository types",
|
|
36
40
|
option: "-rt,--repository-type <values>",
|
|
37
41
|
parser: (v) => (0, string_util_1.parseStringList)(v),
|
|
38
42
|
},
|
|
39
43
|
tag: {
|
|
40
|
-
description: "
|
|
44
|
+
description: "Filter by tags",
|
|
41
45
|
option: "-t,--tag <values>",
|
|
42
46
|
parser: string_util_1.parseStringList,
|
|
43
47
|
},
|
|
@@ -50,6 +54,7 @@ class RestoreCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
50
54
|
snapshotId: this.options.id,
|
|
51
55
|
packageNames: this.options.package,
|
|
52
56
|
packageTaskNames: this.options.packageTask,
|
|
57
|
+
packageConfig: this.options.packageConfig,
|
|
53
58
|
repositoryNames: this.options.repository,
|
|
54
59
|
repositoryTypes: this.options.repositoryType,
|
|
55
60
|
tags: this.options.tag,
|
|
@@ -62,6 +67,8 @@ class RestoreCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
62
67
|
altDrivers: [
|
|
63
68
|
new ConsoleSessionDriver_1.ConsoleSessionDriver({
|
|
64
69
|
verbose: verbose > 0,
|
|
70
|
+
progress: this.globalOptions.progress,
|
|
71
|
+
progressInterval: this.globalOptions.progressInterval,
|
|
65
72
|
}),
|
|
66
73
|
],
|
|
67
74
|
verbose: verbose > 1,
|
|
@@ -13,17 +13,17 @@ class RestoreSessionsCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
13
13
|
onOptions() {
|
|
14
14
|
return this.returnsOptions({
|
|
15
15
|
package: {
|
|
16
|
-
description: "
|
|
16
|
+
description: "Filter by package names",
|
|
17
17
|
option: "-p,--package <values>",
|
|
18
18
|
parser: string_util_1.parseStringList,
|
|
19
19
|
},
|
|
20
20
|
repository: {
|
|
21
|
-
description: "
|
|
21
|
+
description: "Filter by repository names",
|
|
22
22
|
option: "-r,--repository <values>",
|
|
23
23
|
parser: string_util_1.parseStringList,
|
|
24
24
|
},
|
|
25
25
|
tag: {
|
|
26
|
-
description: "
|
|
26
|
+
description: "Filter by tags",
|
|
27
27
|
option: "-t,--tag <values>",
|
|
28
28
|
parser: string_util_1.parseStringList,
|
|
29
29
|
},
|
|
@@ -6,6 +6,7 @@ export declare type SnapshotsCommandOptionsType<TResolved = false> = {
|
|
|
6
6
|
id?: If<TResolved, string[]>;
|
|
7
7
|
package?: If<TResolved, string[]>;
|
|
8
8
|
packageTask?: If<TResolved, string[]>;
|
|
9
|
+
packageConfig?: boolean;
|
|
9
10
|
repository?: If<TResolved, string[]>;
|
|
10
11
|
repositoryType?: If<TResolved, RepositoryConfigType["type"][]>;
|
|
11
12
|
longId?: boolean;
|
|
@@ -1,4 +1,7 @@
|
|
|
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.SnapshotsCommand = void 0;
|
|
4
7
|
const ConfigAction_1 = require("../Action/ConfigAction");
|
|
@@ -6,6 +9,7 @@ const SnapshotsAction_1 = require("../Action/SnapshotsAction");
|
|
|
6
9
|
const DataFormat_1 = require("../util/DataFormat");
|
|
7
10
|
const string_util_1 = require("../util/string-util");
|
|
8
11
|
const CommandAbstract_1 = require("./CommandAbstract");
|
|
12
|
+
const pretty_bytes_1 = __importDefault(require("pretty-bytes"));
|
|
9
13
|
class SnapshotsCommand extends CommandAbstract_1.CommandAbstract {
|
|
10
14
|
onOptions() {
|
|
11
15
|
const groupByValues = ["packageName", "repositoryName", "repositoryType"];
|
|
@@ -15,72 +19,76 @@ class SnapshotsCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
15
19
|
description: `Group by values (${groupByValues.join(", ")})`,
|
|
16
20
|
parser: (v) => (0, string_util_1.parseStringList)(v, groupByValues),
|
|
17
21
|
},
|
|
22
|
+
longId: {
|
|
23
|
+
option: "--longId",
|
|
24
|
+
description: "Show long id",
|
|
25
|
+
},
|
|
18
26
|
id: {
|
|
19
27
|
option: "-i,--id <ids>",
|
|
20
|
-
description: "
|
|
28
|
+
description: "Filter by identifiers",
|
|
21
29
|
parser: string_util_1.parseStringList,
|
|
22
30
|
},
|
|
23
31
|
last: {
|
|
24
32
|
option: "-l,--last <number>",
|
|
25
|
-
description: "
|
|
33
|
+
description: "Filter by last snapshots",
|
|
26
34
|
parser: Number,
|
|
27
35
|
},
|
|
28
36
|
lastMinutely: {
|
|
29
37
|
option: "--lastMinutely <number>",
|
|
30
|
-
description: "
|
|
38
|
+
description: "Filter by last minutely",
|
|
31
39
|
parser: Number,
|
|
32
40
|
},
|
|
33
41
|
lastDaily: {
|
|
34
42
|
option: "--lastDaily <number>",
|
|
35
|
-
description: "
|
|
43
|
+
description: "Filter by last daily",
|
|
36
44
|
parser: Number,
|
|
37
45
|
},
|
|
38
46
|
lastHourly: {
|
|
39
47
|
option: "--lastHourly <number>",
|
|
40
|
-
description: "
|
|
48
|
+
description: "Filter by last hourly",
|
|
41
49
|
parser: Number,
|
|
42
50
|
},
|
|
43
51
|
lastMonthly: {
|
|
44
52
|
option: "--lastMonthly <number>",
|
|
45
|
-
description: "
|
|
53
|
+
description: "Filter by last monthly",
|
|
46
54
|
parser: Number,
|
|
47
55
|
},
|
|
48
56
|
lastWeekly: {
|
|
49
57
|
option: "--lastWeekly <number>",
|
|
50
|
-
description: "
|
|
58
|
+
description: "Filter by last weekly",
|
|
51
59
|
parser: Number,
|
|
52
60
|
},
|
|
53
61
|
lastYearly: {
|
|
54
62
|
option: "--lastYearly <number>",
|
|
55
|
-
description: "
|
|
63
|
+
description: "Filter by last yearly",
|
|
56
64
|
parser: Number,
|
|
57
65
|
},
|
|
58
|
-
longId: {
|
|
59
|
-
option: "--longId",
|
|
60
|
-
description: "Show long id",
|
|
61
|
-
},
|
|
62
66
|
package: {
|
|
63
67
|
option: "-p,--package <names>",
|
|
64
|
-
description: "
|
|
68
|
+
description: "Filter by package names",
|
|
65
69
|
parser: string_util_1.parseStringList,
|
|
66
70
|
},
|
|
67
71
|
packageTask: {
|
|
68
|
-
description: "Package task names",
|
|
69
72
|
option: "-pt,--package-task <values>",
|
|
73
|
+
description: "Filter by task names",
|
|
70
74
|
parser: string_util_1.parseStringList,
|
|
71
75
|
},
|
|
76
|
+
packageConfig: {
|
|
77
|
+
description: "Filter by package config",
|
|
78
|
+
option: "-pc,--package-config",
|
|
79
|
+
},
|
|
72
80
|
repository: {
|
|
73
81
|
option: "-r,--repository <names>",
|
|
74
|
-
description: "
|
|
82
|
+
description: "Filter by repository names",
|
|
75
83
|
parser: string_util_1.parseStringList,
|
|
76
84
|
},
|
|
77
85
|
repositoryType: {
|
|
78
|
-
option: "-
|
|
79
|
-
description: "
|
|
86
|
+
option: "-rt,--repository-type <names>",
|
|
87
|
+
description: "Filter by repository types",
|
|
80
88
|
parser: (v) => (0, string_util_1.parseStringList)(v),
|
|
81
89
|
},
|
|
82
90
|
tag: {
|
|
83
|
-
description: "
|
|
91
|
+
description: "Filter by tags",
|
|
84
92
|
option: "-t,--tag <values>",
|
|
85
93
|
parser: string_util_1.parseStringList,
|
|
86
94
|
},
|
|
@@ -93,6 +101,7 @@ class SnapshotsCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
93
101
|
ids: this.options.id,
|
|
94
102
|
packageNames: this.options.package,
|
|
95
103
|
packageTaskNames: this.options.packageTask,
|
|
104
|
+
packageConfig: this.options.packageConfig,
|
|
96
105
|
repositoryNames: this.options.repository,
|
|
97
106
|
repositoryTypes: this.options.repositoryType,
|
|
98
107
|
last: this.options.last,
|
|
@@ -115,6 +124,7 @@ class SnapshotsCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
115
124
|
"Date",
|
|
116
125
|
"Package",
|
|
117
126
|
"Task",
|
|
127
|
+
"Size",
|
|
118
128
|
"Repository",
|
|
119
129
|
"Repository type",
|
|
120
130
|
],
|
|
@@ -123,6 +133,7 @@ class SnapshotsCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
123
133
|
item.date.replace("T", " ").replace("Z", ""),
|
|
124
134
|
item.packageName,
|
|
125
135
|
item.packageTaskName || "",
|
|
136
|
+
(0, pretty_bytes_1.default)(item.size),
|
|
126
137
|
item.repositoryName,
|
|
127
138
|
item.repositoryType,
|
|
128
139
|
],
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { DatatruckPackageRepositoryConfigType, datatruckRepositoryName } from "../Repository/DatatruckRepository";
|
|
1
2
|
import { GitPackageRepositoryConfigType, gitRepositoryName } from "../Repository/GitRepository";
|
|
2
|
-
import { LocalPackageRepositoryConfigType, localRepositoryName } from "../Repository/LocalRepository";
|
|
3
3
|
import { ResticPackageRepositoryConfigType, resticRepositoryName } from "../Repository/ResticRepository";
|
|
4
4
|
import type { JSONSchema7 } from "json-schema";
|
|
5
5
|
export declare const packageRepositoryConfigDefinition: JSONSchema7;
|
|
@@ -9,8 +9,8 @@ export declare type PackageRepositoryConfigType = {
|
|
|
9
9
|
type: typeof resticRepositoryName;
|
|
10
10
|
config: ResticPackageRepositoryConfigType;
|
|
11
11
|
} | {
|
|
12
|
-
type: typeof
|
|
13
|
-
config:
|
|
12
|
+
type: typeof datatruckRepositoryName;
|
|
13
|
+
config: DatatruckPackageRepositoryConfigType;
|
|
14
14
|
} | {
|
|
15
15
|
type: typeof gitRepositoryName;
|
|
16
16
|
config: GitPackageRepositoryConfigType;
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.packageRepositoryConfigDefinition = void 0;
|
|
4
4
|
const DefinitionEnum_1 = require("../JsonSchema/DefinitionEnum");
|
|
5
|
+
const DatatruckRepository_1 = require("../Repository/DatatruckRepository");
|
|
5
6
|
const GitRepository_1 = require("../Repository/GitRepository");
|
|
6
|
-
const LocalRepository_1 = require("../Repository/LocalRepository");
|
|
7
7
|
const ResticRepository_1 = require("../Repository/ResticRepository");
|
|
8
8
|
const types = {
|
|
9
9
|
[ResticRepository_1.resticRepositoryName]: DefinitionEnum_1.DefinitionEnum.resticPackageRepository,
|
|
10
|
-
[
|
|
10
|
+
[DatatruckRepository_1.datatruckRepositoryName]: DefinitionEnum_1.DefinitionEnum.datatruckPackageRepository,
|
|
11
11
|
[GitRepository_1.gitRepositoryName]: DefinitionEnum_1.DefinitionEnum.gitPackageRepository,
|
|
12
12
|
};
|
|
13
13
|
exports.packageRepositoryConfigDefinition = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { DatatruckRepositoryConfigType, datatruckRepositoryName } from "../Repository/DatatruckRepository";
|
|
1
2
|
import { GitRepositoryConfigType, gitRepositoryName } from "../Repository/GitRepository";
|
|
2
|
-
import { LocalRepositoryConfigType, localRepositoryName } from "../Repository/LocalRepository";
|
|
3
3
|
import { ResticRepositoryConfigType, resticRepositoryName } from "../Repository/ResticRepository";
|
|
4
4
|
import type { JSONSchema7 } from "json-schema";
|
|
5
5
|
export declare const repositoryConfigDefinition: JSONSchema7;
|
|
@@ -15,8 +15,8 @@ export declare type RepositoryConfigType = {
|
|
|
15
15
|
type: typeof resticRepositoryName;
|
|
16
16
|
config: ResticRepositoryConfigType;
|
|
17
17
|
} | {
|
|
18
|
-
type: typeof
|
|
19
|
-
config:
|
|
18
|
+
type: typeof datatruckRepositoryName;
|
|
19
|
+
config: DatatruckRepositoryConfigType;
|
|
20
20
|
} | {
|
|
21
21
|
type: typeof gitRepositoryName;
|
|
22
22
|
config: GitRepositoryConfigType;
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.repositoryConfigDefinition = void 0;
|
|
4
4
|
const DefinitionEnum_1 = require("../JsonSchema/DefinitionEnum");
|
|
5
|
+
const DatatruckRepository_1 = require("../Repository/DatatruckRepository");
|
|
5
6
|
const GitRepository_1 = require("../Repository/GitRepository");
|
|
6
|
-
const LocalRepository_1 = require("../Repository/LocalRepository");
|
|
7
7
|
const ResticRepository_1 = require("../Repository/ResticRepository");
|
|
8
8
|
const types = {
|
|
9
9
|
[ResticRepository_1.resticRepositoryName]: DefinitionEnum_1.DefinitionEnum.resticRepository,
|
|
10
|
-
[
|
|
10
|
+
[DatatruckRepository_1.datatruckRepositoryName]: DefinitionEnum_1.DefinitionEnum.datatruckRepository,
|
|
11
11
|
[GitRepository_1.gitRepositoryName]: DefinitionEnum_1.DefinitionEnum.gitRepository,
|
|
12
12
|
};
|
|
13
13
|
exports.repositoryConfigDefinition = {
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RepositoryFactory = void 0;
|
|
4
4
|
const AppError_1 = require("../Error/AppError");
|
|
5
|
+
const DatatruckRepository_1 = require("../Repository/DatatruckRepository");
|
|
5
6
|
const GitRepository_1 = require("../Repository/GitRepository");
|
|
6
|
-
const LocalRepository_1 = require("../Repository/LocalRepository");
|
|
7
7
|
const ResticRepository_1 = require("../Repository/ResticRepository");
|
|
8
8
|
function RepositoryFactory(repository) {
|
|
9
9
|
const type = repository.type;
|
|
@@ -13,8 +13,8 @@ function RepositoryFactory(repository) {
|
|
|
13
13
|
else if (type === ResticRepository_1.resticRepositoryName) {
|
|
14
14
|
return new ResticRepository_1.ResticRepository(repository);
|
|
15
15
|
}
|
|
16
|
-
else if (type ===
|
|
17
|
-
return new
|
|
16
|
+
else if (type === DatatruckRepository_1.datatruckRepositoryName) {
|
|
17
|
+
return new DatatruckRepository_1.DatatruckRepository(repository);
|
|
18
18
|
}
|
|
19
19
|
else {
|
|
20
20
|
throw new AppError_1.AppError(`Invalid repository type: ${type}`);
|
|
@@ -6,8 +6,8 @@ export declare enum DefinitionEnum {
|
|
|
6
6
|
task = "task",
|
|
7
7
|
resticRepository = "restic-repository",
|
|
8
8
|
resticPackageRepository = "restic-package-repository",
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
datatruckRepository = "datatruck-repository",
|
|
10
|
+
datatruckPackageRepository = "datatruck-package-repository",
|
|
11
11
|
gitRepository = "git-repository",
|
|
12
12
|
gitPackageRepository = "git-package-repository",
|
|
13
13
|
gitTask = "git-task",
|
|
@@ -10,8 +10,8 @@ var DefinitionEnum;
|
|
|
10
10
|
DefinitionEnum["task"] = "task";
|
|
11
11
|
DefinitionEnum["resticRepository"] = "restic-repository";
|
|
12
12
|
DefinitionEnum["resticPackageRepository"] = "restic-package-repository";
|
|
13
|
-
DefinitionEnum["
|
|
14
|
-
DefinitionEnum["
|
|
13
|
+
DefinitionEnum["datatruckRepository"] = "datatruck-repository";
|
|
14
|
+
DefinitionEnum["datatruckPackageRepository"] = "datatruck-package-repository";
|
|
15
15
|
DefinitionEnum["gitRepository"] = "git-repository";
|
|
16
16
|
DefinitionEnum["gitPackageRepository"] = "git-package-repository";
|
|
17
17
|
DefinitionEnum["gitTask"] = "git-task";
|
package/JsonSchema/JsonSchema.js
CHANGED
|
@@ -7,8 +7,8 @@ const PackageRepositoryConfig_1 = require("../Config/PackageRepositoryConfig");
|
|
|
7
7
|
const PrunePolicyConfig_1 = require("../Config/PrunePolicyConfig");
|
|
8
8
|
const RepositoryConfig_1 = require("../Config/RepositoryConfig");
|
|
9
9
|
const TaskConfig_1 = require("../Config/TaskConfig");
|
|
10
|
+
const DatatruckRepository_1 = require("../Repository/DatatruckRepository");
|
|
10
11
|
const GitRepository_1 = require("../Repository/GitRepository");
|
|
11
|
-
const LocalRepository_1 = require("../Repository/LocalRepository");
|
|
12
12
|
const ResticRepository_1 = require("../Repository/ResticRepository");
|
|
13
13
|
const GitTask_1 = require("../Task/GitTask");
|
|
14
14
|
const MariadbTask_1 = require("../Task/MariadbTask");
|
|
@@ -31,8 +31,8 @@ exports.definitions = {
|
|
|
31
31
|
[DefinitionEnum_1.DefinitionEnum.task]: TaskConfig_1.taskConfigDefinition,
|
|
32
32
|
[DefinitionEnum_1.DefinitionEnum.gitRepository]: GitRepository_1.gitRepositoryDefinition,
|
|
33
33
|
[DefinitionEnum_1.DefinitionEnum.gitPackageRepository]: GitRepository_1.gitPackageRepositoryDefinition,
|
|
34
|
-
[DefinitionEnum_1.DefinitionEnum.
|
|
35
|
-
[DefinitionEnum_1.DefinitionEnum.
|
|
34
|
+
[DefinitionEnum_1.DefinitionEnum.datatruckRepository]: DatatruckRepository_1.datatruckRepositoryDefinition,
|
|
35
|
+
[DefinitionEnum_1.DefinitionEnum.datatruckPackageRepository]: DatatruckRepository_1.datatruckPackageRepositoryDefinition,
|
|
36
36
|
[DefinitionEnum_1.DefinitionEnum.resticRepository]: ResticRepository_1.resticRepositoryDefinition,
|
|
37
37
|
[DefinitionEnum_1.DefinitionEnum.resticPackageRepository]: ResticRepository_1.resticPackageRepositoryDefinition,
|
|
38
38
|
[DefinitionEnum_1.DefinitionEnum.gitTask]: GitTask_1.gitTaskDefinition,
|