@datatruck/cli 0.12.1 → 0.14.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/Command/BackupCommand.js +2 -0
- package/Command/CommandAbstract.d.ts +2 -0
- package/Command/RestoreCommand.js +2 -0
- package/Command/SnapshotsCommand.js +6 -0
- 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} +11 -9
- package/Repository/{LocalRepository.js → DatatruckRepository.js} +215 -102
- 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/Task/GitTask.js +1 -0
- package/Task/SqlDumpTaskAbstract.js +1 -0
- package/cli.js +2 -0
- package/config.schema.json +10 -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 +18 -20
- package/util/fs-util.js +86 -101
- package/util/math-util.js +2 -0
- package/util/process-util.d.ts +1 -0
- package/util/process-util.js +23 -5
- package/util/string-util.d.ts +1 -0
- package/util/string-util.js +8 -1
- package/util/zip-util.d.ts +45 -18
- package/util/zip-util.js +98 -52
package/Command/BackupCommand.js
CHANGED
|
@@ -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
|
});
|
|
@@ -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>;
|
|
@@ -67,6 +67,8 @@ class RestoreCommand 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
|
verbose: verbose > 1,
|
|
@@ -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"];
|
|
@@ -120,6 +124,7 @@ class SnapshotsCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
120
124
|
"Date",
|
|
121
125
|
"Package",
|
|
122
126
|
"Task",
|
|
127
|
+
"Size",
|
|
123
128
|
"Repository",
|
|
124
129
|
"Repository type",
|
|
125
130
|
],
|
|
@@ -128,6 +133,7 @@ class SnapshotsCommand extends CommandAbstract_1.CommandAbstract {
|
|
|
128
133
|
item.date.replace("T", " ").replace("Z", ""),
|
|
129
134
|
item.packageName,
|
|
130
135
|
item.packageTaskName || "",
|
|
136
|
+
(0, pretty_bytes_1.default)(item.size),
|
|
131
137
|
item.repositoryName,
|
|
132
138
|
item.repositoryType,
|
|
133
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,
|
|
@@ -7,8 +7,9 @@ export declare type MetaDataType = {
|
|
|
7
7
|
task: string | undefined;
|
|
8
8
|
tags: string[];
|
|
9
9
|
version: string;
|
|
10
|
+
size: number;
|
|
10
11
|
};
|
|
11
|
-
export declare type
|
|
12
|
+
export declare type DatatruckRepositoryConfigType = {
|
|
12
13
|
outPath: string;
|
|
13
14
|
compress?: boolean;
|
|
14
15
|
/**
|
|
@@ -18,18 +19,19 @@ export declare type LocalRepositoryConfigType = {
|
|
|
18
19
|
};
|
|
19
20
|
declare type CompressObjectType = {
|
|
20
21
|
packs?: {
|
|
22
|
+
name?: string;
|
|
21
23
|
include: string[];
|
|
22
24
|
exclude?: string[];
|
|
23
25
|
onePackByResult?: boolean;
|
|
24
26
|
}[];
|
|
25
27
|
};
|
|
26
|
-
export declare type
|
|
28
|
+
export declare type DatatruckPackageRepositoryConfigType = {
|
|
27
29
|
compress?: CompressObjectType | boolean;
|
|
28
30
|
};
|
|
29
|
-
export declare const
|
|
30
|
-
export declare const
|
|
31
|
-
export declare const
|
|
32
|
-
export declare class
|
|
31
|
+
export declare const datatruckRepositoryName = "datatruck";
|
|
32
|
+
export declare const datatruckRepositoryDefinition: JSONSchema7;
|
|
33
|
+
export declare const datatruckPackageRepositoryDefinition: JSONSchema7;
|
|
34
|
+
export declare class DatatruckRepository extends RepositoryAbstract<DatatruckRepositoryConfigType> {
|
|
33
35
|
static zipBasenameTpl: string;
|
|
34
36
|
static buildSnapshotName(data: {
|
|
35
37
|
snapshotId: string;
|
|
@@ -50,8 +52,8 @@ export declare class LocalRepository extends RepositoryAbstract<LocalRepositoryC
|
|
|
50
52
|
onPrune(data: PruneDataType): Promise<void>;
|
|
51
53
|
onSnapshots(data: SnapshotsDataType): Promise<SnapshotResultType[]>;
|
|
52
54
|
private normalizeCompressConfig;
|
|
53
|
-
onBackup(data: BackupDataType<
|
|
54
|
-
onCopyBackup(data: CopyBackupType<
|
|
55
|
-
onRestore(data: RestoreDataType<
|
|
55
|
+
onBackup(data: BackupDataType<DatatruckPackageRepositoryConfigType>): Promise<void>;
|
|
56
|
+
onCopyBackup(data: CopyBackupType<DatatruckRepositoryConfigType>): Promise<void>;
|
|
57
|
+
onRestore(data: RestoreDataType<DatatruckPackageRepositoryConfigType>): Promise<void>;
|
|
56
58
|
}
|
|
57
59
|
export {};
|