@tinyrack/devsync 1.0.3 → 1.2.2
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/README.md +248 -56
- package/dist/cli/base-command.d.ts +14 -0
- package/dist/cli/base-command.d.ts.map +1 -0
- package/dist/cli/base-command.js +22 -0
- package/dist/cli/base-command.js.map +1 -0
- package/dist/cli/commands/dir.d.ts +8 -0
- package/dist/cli/commands/dir.d.ts.map +1 -0
- package/dist/cli/commands/dir.js +16 -0
- package/dist/cli/commands/dir.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +8 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +18 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/index.d.ts +23 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +23 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/init.d.ts +15 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +43 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/machine/list.d.ts +7 -0
- package/dist/cli/commands/machine/list.d.ts.map +1 -0
- package/dist/cli/commands/machine/list.js +12 -0
- package/dist/cli/commands/machine/list.js.map +1 -0
- package/dist/cli/commands/machine/use.d.ts +11 -0
- package/dist/cli/commands/machine/use.d.ts.map +1 -0
- package/dist/cli/commands/machine/use.js +28 -0
- package/dist/cli/commands/machine/use.js.map +1 -0
- package/dist/cli/commands/pull.d.ts +12 -0
- package/dist/cli/commands/pull.d.ts.map +1 -0
- package/dist/cli/commands/pull.js +34 -0
- package/dist/cli/commands/pull.js.map +1 -0
- package/dist/cli/commands/push.d.ts +12 -0
- package/dist/cli/commands/push.d.ts.map +1 -0
- package/dist/cli/commands/push.js +34 -0
- package/dist/cli/commands/push.js.map +1 -0
- package/dist/cli/commands/status.d.ts +11 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +27 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/track.d.ts +16 -0
- package/dist/cli/commands/track.d.ts.map +1 -0
- package/dist/cli/commands/track.js +82 -0
- package/dist/cli/commands/track.js.map +1 -0
- package/dist/cli/commands/untrack.d.ts +11 -0
- package/dist/cli/commands/untrack.d.ts.map +1 -0
- package/dist/cli/commands/untrack.js +28 -0
- package/dist/cli/commands/untrack.js.map +1 -0
- package/dist/config/global-config.d.ts +21 -0
- package/dist/config/global-config.d.ts.map +1 -0
- package/dist/config/global-config.js +106 -0
- package/dist/config/global-config.js.map +1 -0
- package/dist/config/sync.d.ts +96 -0
- package/dist/config/sync.d.ts.map +1 -0
- package/dist/config/sync.js +412 -0
- package/dist/config/sync.js.map +1 -0
- package/dist/config/xdg.d.ts +11 -0
- package/dist/config/xdg.d.ts.map +1 -0
- package/dist/config/xdg.js +79 -0
- package/dist/config/xdg.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/{src/index.ts → dist/index.js} +1 -1
- package/dist/index.js.map +1 -0
- package/dist/lib/file-mode.d.ts +3 -0
- package/dist/lib/file-mode.d.ts.map +1 -0
- package/dist/lib/file-mode.js +7 -0
- package/dist/lib/file-mode.js.map +1 -0
- package/dist/lib/output.d.ts +31 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +198 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/path.d.ts +5 -0
- package/dist/lib/path.d.ts.map +1 -0
- package/dist/lib/path.js +25 -0
- package/dist/lib/path.js.map +1 -0
- package/dist/lib/string.d.ts +2 -0
- package/dist/lib/string.d.ts.map +1 -0
- package/dist/lib/string.js +4 -0
- package/dist/lib/string.js.map +1 -0
- package/dist/lib/validation.d.ts +3 -0
- package/dist/lib/validation.d.ts.map +1 -0
- package/dist/lib/validation.js +9 -0
- package/dist/lib/validation.js.map +1 -0
- package/dist/services/add.d.ts +20 -0
- package/dist/services/add.d.ts.map +1 -0
- package/dist/services/add.js +161 -0
- package/dist/services/add.js.map +1 -0
- package/dist/services/config-file.d.ts +30 -0
- package/dist/services/config-file.d.ts.map +1 -0
- package/dist/services/config-file.js +34 -0
- package/dist/services/config-file.js.map +1 -0
- package/dist/services/crypto.d.ts +9 -0
- package/dist/services/crypto.d.ts.map +1 -0
- package/dist/services/crypto.js +75 -0
- package/dist/services/crypto.js.map +1 -0
- package/dist/services/doctor.d.ts +16 -0
- package/dist/services/doctor.d.ts.map +1 -0
- package/dist/services/doctor.js +84 -0
- package/dist/services/doctor.js.map +1 -0
- package/dist/services/error.d.ts +14 -0
- package/dist/services/error.d.ts.map +1 -0
- package/dist/services/error.js +38 -0
- package/dist/services/error.js.map +1 -0
- package/dist/services/filesystem.d.ts +15 -0
- package/dist/services/filesystem.d.ts.map +1 -0
- package/dist/services/filesystem.js +113 -0
- package/dist/services/filesystem.js.map +1 -0
- package/dist/services/forget.d.ts +14 -0
- package/dist/services/forget.d.ts.map +1 -0
- package/dist/services/forget.js +124 -0
- package/dist/services/forget.js.map +1 -0
- package/dist/services/git.d.ts +10 -0
- package/dist/services/git.d.ts.map +1 -0
- package/dist/services/git.js +57 -0
- package/dist/services/git.js.map +1 -0
- package/dist/services/init.d.ts +19 -0
- package/dist/services/init.d.ts.map +1 -0
- package/dist/services/init.js +203 -0
- package/dist/services/init.js.map +1 -0
- package/dist/services/local-materialization.d.ts +28 -0
- package/dist/services/local-materialization.d.ts.map +1 -0
- package/dist/services/local-materialization.js +262 -0
- package/dist/services/local-materialization.js.map +1 -0
- package/dist/services/local-snapshot.d.ts +25 -0
- package/dist/services/local-snapshot.d.ts.map +1 -0
- package/dist/services/local-snapshot.js +93 -0
- package/dist/services/local-snapshot.js.map +1 -0
- package/dist/services/machine.d.ts +40 -0
- package/dist/services/machine.d.ts.map +1 -0
- package/dist/services/machine.js +113 -0
- package/dist/services/machine.js.map +1 -0
- package/dist/services/paths.d.ts +12 -0
- package/dist/services/paths.d.ts.map +1 -0
- package/dist/services/paths.js +71 -0
- package/dist/services/paths.js.map +1 -0
- package/dist/services/pull.d.ts +28 -0
- package/dist/services/pull.d.ts.map +1 -0
- package/dist/services/pull.js +67 -0
- package/dist/services/pull.js.map +1 -0
- package/dist/services/push.d.ts +35 -0
- package/dist/services/push.d.ts.map +1 -0
- package/dist/services/push.js +96 -0
- package/dist/services/push.js.map +1 -0
- package/dist/services/repo-artifacts.d.ts +52 -0
- package/dist/services/repo-artifacts.d.ts.map +1 -0
- package/dist/services/repo-artifacts.js +251 -0
- package/dist/services/repo-artifacts.js.map +1 -0
- package/dist/services/repo-snapshot.d.ts +6 -0
- package/dist/services/repo-snapshot.d.ts.map +1 -0
- package/dist/services/repo-snapshot.js +163 -0
- package/dist/services/repo-snapshot.js.map +1 -0
- package/dist/services/runtime.d.ts +40 -0
- package/dist/services/runtime.d.ts.map +1 -0
- package/dist/services/runtime.js +71 -0
- package/dist/services/runtime.js.map +1 -0
- package/dist/services/set.d.ts +38 -0
- package/dist/services/set.d.ts.map +1 -0
- package/dist/services/set.js +184 -0
- package/dist/services/set.js.map +1 -0
- package/dist/services/status.d.ts +30 -0
- package/dist/services/status.d.ts.map +1 -0
- package/dist/services/status.js +35 -0
- package/dist/services/status.js.map +1 -0
- package/package.json +15 -7
- package/src/cli/commands/add.ts +0 -40
- package/src/cli/commands/cd.ts +0 -80
- package/src/cli/commands/forget.ts +0 -32
- package/src/cli/commands/index.ts +0 -17
- package/src/cli/commands/init.ts +0 -43
- package/src/cli/commands/pull.ts +0 -31
- package/src/cli/commands/push.ts +0 -31
- package/src/cli/commands/set.ts +0 -47
- package/src/cli/sync-output.test.ts +0 -105
- package/src/cli/sync-output.ts +0 -129
- package/src/config/sync.test.ts +0 -609
- package/src/config/sync.ts +0 -572
- package/src/config/xdg.ts +0 -138
- package/src/lib/string.test.ts +0 -13
- package/src/lib/string.ts +0 -3
- package/src/lib/validation.test.ts +0 -32
- package/src/lib/validation.ts +0 -11
- package/src/services/add.ts +0 -178
- package/src/services/config-file.test.ts +0 -161
- package/src/services/config-file.ts +0 -101
- package/src/services/crypto.test.ts +0 -132
- package/src/services/crypto.ts +0 -83
- package/src/services/error.ts +0 -6
- package/src/services/filesystem.test.ts +0 -171
- package/src/services/filesystem.ts +0 -183
- package/src/services/forget.ts +0 -261
- package/src/services/git.test.ts +0 -83
- package/src/services/git.ts +0 -74
- package/src/services/init.test.ts +0 -109
- package/src/services/init.ts +0 -244
- package/src/services/local-materialization.ts +0 -421
- package/src/services/local-snapshot.ts +0 -173
- package/src/services/paths.test.ts +0 -74
- package/src/services/paths.ts +0 -98
- package/src/services/pull.ts +0 -75
- package/src/services/push.ts +0 -121
- package/src/services/repo-artifacts.ts +0 -262
- package/src/services/repo-snapshot.ts +0 -197
- package/src/services/runtime.ts +0 -57
- package/src/services/set.ts +0 -383
- package/src/services/sync.dry-run.test.ts +0 -179
- package/src/services/sync.runtime.test.ts +0 -756
- package/src/services/sync.service.test.ts +0 -1025
- package/src/test/helpers/sync-fixture.ts +0 -47
package/src/cli/commands/set.ts
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { Args, Command, Flags } from "@oclif/core";
|
|
2
|
-
|
|
3
|
-
import { formatSyncSetResult } from "#app/cli/sync-output.ts";
|
|
4
|
-
import { createSyncContext } from "#app/services/runtime.ts";
|
|
5
|
-
import { setSyncTargetMode } from "#app/services/set.ts";
|
|
6
|
-
|
|
7
|
-
export default class SyncSet extends Command {
|
|
8
|
-
public static override summary =
|
|
9
|
-
"Set sync mode for a tracked directory root, child file, or child subtree";
|
|
10
|
-
|
|
11
|
-
public static override args = {
|
|
12
|
-
state: Args.string({
|
|
13
|
-
description: "Mode to apply: normal, secret, or ignore",
|
|
14
|
-
options: ["normal", "secret", "ignore"],
|
|
15
|
-
required: true,
|
|
16
|
-
}),
|
|
17
|
-
target: Args.string({
|
|
18
|
-
description:
|
|
19
|
-
"Tracked local path (including cwd-relative) or repository path inside a tracked directory",
|
|
20
|
-
required: true,
|
|
21
|
-
}),
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
public static override flags = {
|
|
25
|
-
recursive: Flags.boolean({
|
|
26
|
-
default: false,
|
|
27
|
-
description:
|
|
28
|
-
"Apply the mode to a directory subtree or update a tracked directory root default",
|
|
29
|
-
}),
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
public override async run(): Promise<void> {
|
|
33
|
-
const { args, flags } = await this.parse(SyncSet);
|
|
34
|
-
const output = formatSyncSetResult(
|
|
35
|
-
await setSyncTargetMode(
|
|
36
|
-
{
|
|
37
|
-
recursive: flags.recursive,
|
|
38
|
-
state: args.state as "ignore" | "normal" | "secret",
|
|
39
|
-
target: args.target,
|
|
40
|
-
},
|
|
41
|
-
createSyncContext(),
|
|
42
|
-
),
|
|
43
|
-
);
|
|
44
|
-
|
|
45
|
-
process.stdout.write(output);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
formatSyncAddResult,
|
|
5
|
-
formatSyncForgetResult,
|
|
6
|
-
formatSyncInitResult,
|
|
7
|
-
formatSyncPullResult,
|
|
8
|
-
formatSyncPushResult,
|
|
9
|
-
formatSyncSetResult,
|
|
10
|
-
} from "#app/cli/sync-output.ts";
|
|
11
|
-
|
|
12
|
-
describe("sync output formatting", () => {
|
|
13
|
-
it("formats init results for cloned repositories", () => {
|
|
14
|
-
expect(
|
|
15
|
-
formatSyncInitResult({
|
|
16
|
-
alreadyInitialized: false,
|
|
17
|
-
configPath: "/tmp/sync/config.json",
|
|
18
|
-
entryCount: 2,
|
|
19
|
-
generatedIdentity: true,
|
|
20
|
-
gitAction: "cloned",
|
|
21
|
-
gitSource: "/tmp/remote",
|
|
22
|
-
identityFile: "/tmp/xdg/devsync/age/keys.txt",
|
|
23
|
-
recipientCount: 3,
|
|
24
|
-
ruleCount: 4,
|
|
25
|
-
syncDirectory: "/tmp/sync",
|
|
26
|
-
}),
|
|
27
|
-
).toBe(
|
|
28
|
-
[
|
|
29
|
-
"Initialized sync directory.",
|
|
30
|
-
"Sync directory: /tmp/sync",
|
|
31
|
-
"Config file: /tmp/sync/config.json",
|
|
32
|
-
"Age identity file: /tmp/xdg/devsync/age/keys.txt",
|
|
33
|
-
"Git repository: cloned from /tmp/remote",
|
|
34
|
-
"Age bootstrap: generated a new local identity.",
|
|
35
|
-
"Summary: 3 recipients, 2 entries, 4 rules.",
|
|
36
|
-
"",
|
|
37
|
-
].join("\n"),
|
|
38
|
-
);
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
it("formats add, forget, and set results", () => {
|
|
42
|
-
expect(
|
|
43
|
-
formatSyncAddResult({
|
|
44
|
-
alreadyTracked: false,
|
|
45
|
-
configPath: "/tmp/sync/config.json",
|
|
46
|
-
kind: "file",
|
|
47
|
-
localPath: "/tmp/home/.zshrc",
|
|
48
|
-
mode: "secret",
|
|
49
|
-
repoPath: ".zshrc",
|
|
50
|
-
syncDirectory: "/tmp/sync",
|
|
51
|
-
}),
|
|
52
|
-
).toContain("Added sync target.\n");
|
|
53
|
-
expect(
|
|
54
|
-
formatSyncForgetResult({
|
|
55
|
-
configPath: "/tmp/sync/config.json",
|
|
56
|
-
localPath: "/tmp/home/.zshrc",
|
|
57
|
-
plainArtifactCount: 1,
|
|
58
|
-
repoPath: ".zshrc",
|
|
59
|
-
secretArtifactCount: 2,
|
|
60
|
-
syncDirectory: "/tmp/sync",
|
|
61
|
-
}),
|
|
62
|
-
).toContain("Removed repo artifacts: 1 plain, 2 secret.\n");
|
|
63
|
-
expect(
|
|
64
|
-
formatSyncSetResult({
|
|
65
|
-
action: "updated",
|
|
66
|
-
configPath: "/tmp/sync/config.json",
|
|
67
|
-
entryRepoPath: "bundle",
|
|
68
|
-
localPath: "/tmp/home/bundle/private.json",
|
|
69
|
-
mode: "ignore",
|
|
70
|
-
repoPath: "bundle/private.json",
|
|
71
|
-
scope: "exact",
|
|
72
|
-
syncDirectory: "/tmp/sync",
|
|
73
|
-
}),
|
|
74
|
-
).toContain("Scope: exact rule\nAction: updated\n");
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
it("formats push and pull dry-run summaries", () => {
|
|
78
|
-
expect(
|
|
79
|
-
formatSyncPushResult({
|
|
80
|
-
configPath: "/tmp/sync/config.json",
|
|
81
|
-
deletedArtifactCount: 4,
|
|
82
|
-
directoryCount: 1,
|
|
83
|
-
dryRun: true,
|
|
84
|
-
encryptedFileCount: 2,
|
|
85
|
-
plainFileCount: 3,
|
|
86
|
-
symlinkCount: 1,
|
|
87
|
-
syncDirectory: "/tmp/sync",
|
|
88
|
-
}),
|
|
89
|
-
).toContain("No filesystem changes were made.\n");
|
|
90
|
-
expect(
|
|
91
|
-
formatSyncPullResult({
|
|
92
|
-
configPath: "/tmp/sync/config.json",
|
|
93
|
-
decryptedFileCount: 2,
|
|
94
|
-
deletedLocalCount: 5,
|
|
95
|
-
directoryCount: 1,
|
|
96
|
-
dryRun: true,
|
|
97
|
-
plainFileCount: 3,
|
|
98
|
-
symlinkCount: 1,
|
|
99
|
-
syncDirectory: "/tmp/sync",
|
|
100
|
-
}),
|
|
101
|
-
).toContain(
|
|
102
|
-
"local paths would be removed.\nNo filesystem changes were made.\n",
|
|
103
|
-
);
|
|
104
|
-
});
|
|
105
|
-
});
|
package/src/cli/sync-output.ts
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { ensureTrailingNewline } from "#app/lib/string.ts";
|
|
2
|
-
import type { SyncAddResult } from "#app/services/add.ts";
|
|
3
|
-
import type { SyncForgetResult } from "#app/services/forget.ts";
|
|
4
|
-
import type { SyncInitResult } from "#app/services/init.ts";
|
|
5
|
-
import type { SyncPullResult } from "#app/services/pull.ts";
|
|
6
|
-
import type { SyncPushResult } from "#app/services/push.ts";
|
|
7
|
-
import type { SyncSetResult } from "#app/services/set.ts";
|
|
8
|
-
|
|
9
|
-
export const formatSyncInitResult = (result: SyncInitResult) => {
|
|
10
|
-
const lines = [
|
|
11
|
-
result.alreadyInitialized
|
|
12
|
-
? "Sync directory already initialized."
|
|
13
|
-
: "Initialized sync directory.",
|
|
14
|
-
`Sync directory: ${result.syncDirectory}`,
|
|
15
|
-
`Config file: ${result.configPath}`,
|
|
16
|
-
`Age identity file: ${result.identityFile}`,
|
|
17
|
-
(() => {
|
|
18
|
-
switch (result.gitAction) {
|
|
19
|
-
case "cloned":
|
|
20
|
-
return `Git repository: cloned from ${result.gitSource}`;
|
|
21
|
-
case "initialized":
|
|
22
|
-
return "Git repository: initialized new repository";
|
|
23
|
-
default:
|
|
24
|
-
return "Git repository: using existing repository";
|
|
25
|
-
}
|
|
26
|
-
})(),
|
|
27
|
-
...(result.generatedIdentity
|
|
28
|
-
? ["Age bootstrap: generated a new local identity."]
|
|
29
|
-
: []),
|
|
30
|
-
`Summary: ${result.recipientCount} recipients, ${result.entryCount} entries, ${result.ruleCount} rules.`,
|
|
31
|
-
];
|
|
32
|
-
|
|
33
|
-
return ensureTrailingNewline(lines.join("\n"));
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
export const formatSyncAddResult = (result: SyncAddResult) => {
|
|
37
|
-
const lines = [
|
|
38
|
-
result.alreadyTracked
|
|
39
|
-
? "Sync target already tracked."
|
|
40
|
-
: "Added sync target.",
|
|
41
|
-
`Sync directory: ${result.syncDirectory}`,
|
|
42
|
-
`Config file: ${result.configPath}`,
|
|
43
|
-
`Local path: ${result.localPath}`,
|
|
44
|
-
`Repository path: ${result.repoPath}`,
|
|
45
|
-
`Kind: ${result.kind}`,
|
|
46
|
-
`Mode: ${result.mode}`,
|
|
47
|
-
];
|
|
48
|
-
|
|
49
|
-
return ensureTrailingNewline(lines.join("\n"));
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
export const formatSyncForgetResult = (result: SyncForgetResult) => {
|
|
53
|
-
const lines = [
|
|
54
|
-
"Forgot sync target.",
|
|
55
|
-
`Sync directory: ${result.syncDirectory}`,
|
|
56
|
-
`Config file: ${result.configPath}`,
|
|
57
|
-
`Local path: ${result.localPath}`,
|
|
58
|
-
`Repository path: ${result.repoPath}`,
|
|
59
|
-
`Removed repo artifacts: ${result.plainArtifactCount} plain, ${result.secretArtifactCount} secret.`,
|
|
60
|
-
];
|
|
61
|
-
|
|
62
|
-
return ensureTrailingNewline(lines.join("\n"));
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
const formatSetScope = (scope: SyncSetResult["scope"]) => {
|
|
66
|
-
switch (scope) {
|
|
67
|
-
case "default":
|
|
68
|
-
return "entry default";
|
|
69
|
-
case "subtree":
|
|
70
|
-
return "subtree rule";
|
|
71
|
-
default:
|
|
72
|
-
return "exact rule";
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
export const formatSyncSetResult = (result: SyncSetResult) => {
|
|
77
|
-
const lines = [
|
|
78
|
-
result.action === "unchanged"
|
|
79
|
-
? "Sync mode unchanged."
|
|
80
|
-
: "Updated sync mode.",
|
|
81
|
-
`Sync directory: ${result.syncDirectory}`,
|
|
82
|
-
`Config file: ${result.configPath}`,
|
|
83
|
-
`Owning entry: ${result.entryRepoPath}`,
|
|
84
|
-
`Target repository path: ${result.repoPath}`,
|
|
85
|
-
`Mode: ${result.mode}`,
|
|
86
|
-
`Scope: ${formatSetScope(result.scope)}`,
|
|
87
|
-
`Action: ${result.action}`,
|
|
88
|
-
];
|
|
89
|
-
|
|
90
|
-
return ensureTrailingNewline(lines.join("\n"));
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
export const formatSyncPushResult = (result: SyncPushResult) => {
|
|
94
|
-
const lines = result.dryRun
|
|
95
|
-
? [
|
|
96
|
-
"Dry run for sync push.",
|
|
97
|
-
`Sync directory: ${result.syncDirectory}`,
|
|
98
|
-
`Config file: ${result.configPath}`,
|
|
99
|
-
`Summary: ${result.plainFileCount} plain files, ${result.encryptedFileCount} encrypted files, ${result.symlinkCount} symlinks, ${result.directoryCount} directory roots, ${result.deletedArtifactCount} stale repository artifacts would be removed.`,
|
|
100
|
-
"No filesystem changes were made.",
|
|
101
|
-
]
|
|
102
|
-
: [
|
|
103
|
-
"Synchronized local config into the sync repository.",
|
|
104
|
-
`Sync directory: ${result.syncDirectory}`,
|
|
105
|
-
`Config file: ${result.configPath}`,
|
|
106
|
-
`Summary: ${result.plainFileCount} plain files, ${result.encryptedFileCount} encrypted files, ${result.symlinkCount} symlinks, ${result.directoryCount} directory roots, ${result.deletedArtifactCount} stale repository artifacts removed.`,
|
|
107
|
-
];
|
|
108
|
-
|
|
109
|
-
return ensureTrailingNewline(lines.join("\n"));
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
export const formatSyncPullResult = (result: SyncPullResult) => {
|
|
113
|
-
const lines = result.dryRun
|
|
114
|
-
? [
|
|
115
|
-
"Dry run for sync pull.",
|
|
116
|
-
`Sync directory: ${result.syncDirectory}`,
|
|
117
|
-
`Config file: ${result.configPath}`,
|
|
118
|
-
`Summary: ${result.plainFileCount} plain files, ${result.decryptedFileCount} decrypted files, ${result.symlinkCount} symlinks, ${result.directoryCount} directory roots, ${result.deletedLocalCount} local paths would be removed.`,
|
|
119
|
-
"No filesystem changes were made.",
|
|
120
|
-
]
|
|
121
|
-
: [
|
|
122
|
-
"Applied sync repository to local config.",
|
|
123
|
-
`Sync directory: ${result.syncDirectory}`,
|
|
124
|
-
`Config file: ${result.configPath}`,
|
|
125
|
-
`Summary: ${result.plainFileCount} plain files, ${result.decryptedFileCount} decrypted files, ${result.symlinkCount} symlinks, ${result.directoryCount} directory roots, ${result.deletedLocalCount} local paths removed.`,
|
|
126
|
-
];
|
|
127
|
-
|
|
128
|
-
return ensureTrailingNewline(lines.join("\n"));
|
|
129
|
-
};
|