pressship 0.1.2 → 0.1.4
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/.claude/skills/wordpress-plugin-publish/SKILL.md +153 -0
- package/README.md +285 -280
- package/assets/logo-new.png +0 -0
- package/assets/pressship-dark.png +0 -0
- package/assets/pressship-square-dark.png +0 -0
- package/assets/pressship-square.png +0 -0
- package/assets/pressship-symbol-dark.png +0 -0
- package/assets/pressship-symbol.png +0 -0
- package/assets/pressship-wordmark-dark.png +0 -0
- package/assets/pressship-wordmark.png +0 -0
- package/assets/pressship.png +0 -0
- package/dist/cli.js +40 -2
- package/dist/cli.js.map +1 -1
- package/dist/package/ignore.js +2 -0
- package/dist/package/ignore.js.map +1 -1
- package/dist/plugin/demo.d.ts +44 -0
- package/dist/plugin/demo.js +207 -0
- package/dist/plugin/demo.js.map +1 -0
- package/dist/plugin/info.d.ts +84 -0
- package/dist/plugin/info.js +209 -0
- package/dist/plugin/info.js.map +1 -0
- package/dist/plugin/list.d.ts +24 -0
- package/dist/plugin/list.js +174 -0
- package/dist/plugin/list.js.map +1 -0
- package/dist/svn/credentials.d.ts +9 -0
- package/dist/svn/credentials.js +94 -0
- package/dist/svn/credentials.js.map +1 -0
- package/dist/svn/get.d.ts +45 -0
- package/dist/svn/get.js +139 -0
- package/dist/svn/get.js.map +1 -0
- package/dist/svn/release.d.ts +1 -0
- package/dist/svn/release.js +90 -13
- package/dist/svn/release.js.map +1 -1
- package/dist/svn/subversion.d.ts +18 -0
- package/dist/svn/subversion.js +171 -0
- package/dist/svn/subversion.js.map +1 -0
- package/dist/utils/paths.d.ts +1 -0
- package/dist/utils/paths.js +3 -0
- package/dist/utils/paths.js.map +1 -1
- package/dist/wordpress-org/publish.d.ts +1 -0
- package/dist/wordpress-org/publish.js +4 -2
- package/dist/wordpress-org/publish.js.map +1 -1
- package/package.json +6 -1
package/dist/svn/get.js
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { execa } from "execa";
|
|
2
|
+
import { mkdir, readdir } from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { slugFromHostedTarget } from "../plugin/info.js";
|
|
6
|
+
import { ui } from "../ui.js";
|
|
7
|
+
import { pathExists } from "../utils/paths.js";
|
|
8
|
+
import { ensureSvnAvailable } from "./subversion.js";
|
|
9
|
+
const getOptionsSchema = z.object({
|
|
10
|
+
json: z.boolean().default(false),
|
|
11
|
+
installSvn: z.boolean().default(true)
|
|
12
|
+
});
|
|
13
|
+
export async function getPlugin(slugOrUrl, destination, rawOptions = {}) {
|
|
14
|
+
const options = getOptionsSchema.parse(rawOptions);
|
|
15
|
+
const slug = slugFromHostedTarget(slugOrUrl);
|
|
16
|
+
const checkoutPath = resolveCheckoutPath(slug, destination);
|
|
17
|
+
const runtimeOptions = {
|
|
18
|
+
installSvn: options.installSvn,
|
|
19
|
+
interactive: !options.json && process.stdin.isTTY,
|
|
20
|
+
quiet: options.json
|
|
21
|
+
};
|
|
22
|
+
await ensureSvnAvailable({ autoInstall: runtimeOptions.installSvn, interactive: runtimeOptions.interactive });
|
|
23
|
+
const result = options.json
|
|
24
|
+
? await checkoutOrUpdatePlugin(slug, checkoutPath, runtimeOptions)
|
|
25
|
+
: await ui.task("Preparing SVN working copy", () => checkoutOrUpdatePlugin(slug, checkoutPath, runtimeOptions), (value) => value.action === "checkout" ? `Checked out ${value.slug}` : `Updated ${value.slug}`);
|
|
26
|
+
if (options.json) {
|
|
27
|
+
console.log(JSON.stringify(result, null, 2));
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
printSvnGetResult(result);
|
|
31
|
+
}
|
|
32
|
+
export async function checkoutOrUpdatePlugin(slug, checkoutPath, options = {}) {
|
|
33
|
+
await ensureSvnAvailable({ autoInstall: options.installSvn, interactive: options.interactive });
|
|
34
|
+
const svnUrl = getPluginSvnUrl(slug);
|
|
35
|
+
const action = await resolveSvnGetAction(checkoutPath);
|
|
36
|
+
const commandOptions = { capture: options.quiet };
|
|
37
|
+
if (action === "checkout") {
|
|
38
|
+
await mkdir(path.dirname(checkoutPath), { recursive: true });
|
|
39
|
+
await runSvn(["checkout", svnUrl, checkoutPath], process.cwd(), commandOptions);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
await runSvn(["update"], checkoutPath, commandOptions);
|
|
43
|
+
}
|
|
44
|
+
const info = parseSvnInfo(await runSvn(["info"], checkoutPath, { capture: true }));
|
|
45
|
+
return {
|
|
46
|
+
slug,
|
|
47
|
+
action,
|
|
48
|
+
svnUrl,
|
|
49
|
+
path: checkoutPath,
|
|
50
|
+
info,
|
|
51
|
+
layout: await readSvnLayout(checkoutPath)
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
export function resolveCheckoutPath(slug, destination) {
|
|
55
|
+
return path.resolve(destination ?? slug);
|
|
56
|
+
}
|
|
57
|
+
export function getPluginSvnUrl(slug) {
|
|
58
|
+
return `https://plugins.svn.wordpress.org/${slug}`;
|
|
59
|
+
}
|
|
60
|
+
export async function resolveSvnGetAction(checkoutPath) {
|
|
61
|
+
if (!pathExists(checkoutPath)) {
|
|
62
|
+
return "checkout";
|
|
63
|
+
}
|
|
64
|
+
if (pathExists(path.join(checkoutPath, ".svn"))) {
|
|
65
|
+
return "update";
|
|
66
|
+
}
|
|
67
|
+
const entries = await readdir(checkoutPath);
|
|
68
|
+
if (entries.length === 0) {
|
|
69
|
+
return "checkout";
|
|
70
|
+
}
|
|
71
|
+
throw new Error(`Target directory already exists and is not an SVN working copy: ${checkoutPath}. Choose another path or remove the directory.`);
|
|
72
|
+
}
|
|
73
|
+
export function parseSvnInfo(output) {
|
|
74
|
+
const values = Object.fromEntries(output
|
|
75
|
+
.split(/\r?\n/)
|
|
76
|
+
.map((line) => line.match(/^([^:]+):\s*(.*)$/))
|
|
77
|
+
.filter((match) => Boolean(match))
|
|
78
|
+
.map((match) => [match[1].toLowerCase(), match[2]]));
|
|
79
|
+
return {
|
|
80
|
+
workingCopyRoot: values["working copy root path"],
|
|
81
|
+
url: values.url,
|
|
82
|
+
relativeUrl: values["relative url"],
|
|
83
|
+
repositoryRoot: values["repository root"],
|
|
84
|
+
repositoryUuid: values["repository uuid"],
|
|
85
|
+
revision: values.revision,
|
|
86
|
+
nodeKind: values["node kind"],
|
|
87
|
+
schedule: values.schedule,
|
|
88
|
+
lastChangedAuthor: values["last changed author"],
|
|
89
|
+
lastChangedRevision: values["last changed rev"],
|
|
90
|
+
lastChangedDate: values["last changed date"]
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
async function readSvnLayout(checkoutPath) {
|
|
94
|
+
const tagsPath = path.join(checkoutPath, "tags");
|
|
95
|
+
const tagEntries = pathExists(tagsPath) ? await readdir(tagsPath, { withFileTypes: true }) : [];
|
|
96
|
+
return {
|
|
97
|
+
trunk: pathExists(path.join(checkoutPath, "trunk")),
|
|
98
|
+
assets: pathExists(path.join(checkoutPath, "assets")),
|
|
99
|
+
tags: pathExists(tagsPath),
|
|
100
|
+
tagCount: tagEntries.filter((entry) => entry.isDirectory()).length
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
async function runSvn(args, cwd, options = {}) {
|
|
104
|
+
const result = await execa("svn", args, {
|
|
105
|
+
cwd,
|
|
106
|
+
reject: false,
|
|
107
|
+
stdout: options.capture ? "pipe" : "inherit",
|
|
108
|
+
stderr: options.capture ? "pipe" : "inherit"
|
|
109
|
+
}).catch((error) => {
|
|
110
|
+
if (isMissingSvnError(error)) {
|
|
111
|
+
throw new Error("`svn` is required for `pressship get`. Install Subversion and try again.");
|
|
112
|
+
}
|
|
113
|
+
throw error;
|
|
114
|
+
});
|
|
115
|
+
if (result.failed && result.exitCode === undefined && !result.stderr && !result.stdout) {
|
|
116
|
+
throw new Error("`svn` is required for `pressship get`. Install Subversion and try again.");
|
|
117
|
+
}
|
|
118
|
+
if (result.exitCode !== 0) {
|
|
119
|
+
throw new Error(result.stderr || result.stdout || `svn ${args.join(" ")} failed.`);
|
|
120
|
+
}
|
|
121
|
+
return `${result.stdout ?? ""}\n${result.stderr ?? ""}`.trim();
|
|
122
|
+
}
|
|
123
|
+
function isMissingSvnError(error) {
|
|
124
|
+
return (error instanceof Error &&
|
|
125
|
+
("code" in error ? error.code === "ENOENT" : /ENOENT|not found/i.test(error.message)));
|
|
126
|
+
}
|
|
127
|
+
function printSvnGetResult(result) {
|
|
128
|
+
ui.section(result.slug);
|
|
129
|
+
ui.keyValue("Action", result.action === "checkout" ? "checked out" : "updated");
|
|
130
|
+
ui.keyValue("SVN", ui.path(result.svnUrl));
|
|
131
|
+
ui.keyValue("Path", ui.path(result.path));
|
|
132
|
+
ui.keyValue("Revision", result.info.revision ?? "unknown");
|
|
133
|
+
ui.keyValue("Last rev", result.info.lastChangedRevision ?? "unknown");
|
|
134
|
+
ui.keyValue("Last author", result.info.lastChangedAuthor ?? "unknown");
|
|
135
|
+
ui.keyValue("Trunk", result.layout.trunk ? ui.value("available") : "missing");
|
|
136
|
+
ui.keyValue("Assets", result.layout.assets ? ui.value("available") : "missing");
|
|
137
|
+
ui.keyValue("Tags", result.layout.tags ? `${result.layout.tagCount}` : "missing");
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/svn/get.ts"],"names":[],"mappings":"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"}
|
package/dist/svn/release.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ declare const releaseOptionsSchema: z.ZodObject<{
|
|
|
9
9
|
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
10
10
|
yes: z.ZodDefault<z.ZodBoolean>;
|
|
11
11
|
ignore: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
12
|
+
installSvn: z.ZodDefault<z.ZodBoolean>;
|
|
12
13
|
}, z.core.$strip>;
|
|
13
14
|
export type ReleaseOptions = z.input<typeof releaseOptionsSchema>;
|
|
14
15
|
export declare function release(pluginPath: string | undefined, rawOptions: ReleaseOptions): Promise<void>;
|
package/dist/svn/release.js
CHANGED
|
@@ -7,6 +7,8 @@ import { listPackageFiles } from "../package/archive.js";
|
|
|
7
7
|
import { discoverPluginProject } from "../plugin/discover.js";
|
|
8
8
|
import { ui } from "../ui.js";
|
|
9
9
|
import { pathExists } from "../utils/paths.js";
|
|
10
|
+
import { resolveSvnCredentials, resolveSvnUsername } from "./credentials.js";
|
|
11
|
+
import { ensureSvnAvailable, isSvnAvailable } from "./subversion.js";
|
|
10
12
|
const releaseOptionsSchema = z.object({
|
|
11
13
|
slug: z.string().optional(),
|
|
12
14
|
version: z.string().optional(),
|
|
@@ -15,7 +17,8 @@ const releaseOptionsSchema = z.object({
|
|
|
15
17
|
message: z.string().optional(),
|
|
16
18
|
dryRun: z.boolean().default(false),
|
|
17
19
|
yes: z.boolean().default(false),
|
|
18
|
-
ignore: z.array(z.string()).default([])
|
|
20
|
+
ignore: z.array(z.string()).default([]),
|
|
21
|
+
installSvn: z.boolean().default(true)
|
|
19
22
|
});
|
|
20
23
|
export async function release(pluginPath, rawOptions) {
|
|
21
24
|
const options = releaseOptionsSchema.parse(rawOptions);
|
|
@@ -29,11 +32,15 @@ export async function release(pluginPath, rawOptions) {
|
|
|
29
32
|
}
|
|
30
33
|
const svnDir = path.resolve(options.svnDir ?? path.join(process.cwd(), ".pressship-svn", slug));
|
|
31
34
|
const message = options.message ?? `Release ${slug} ${version}`;
|
|
32
|
-
const
|
|
35
|
+
const username = options.username ?? (options.dryRun ? undefined : await resolveSvnUsername());
|
|
36
|
+
const plan = createReleaseCommandPlan(slug, svnDir, version, message, username);
|
|
33
37
|
ui.section("Release");
|
|
34
38
|
ui.keyValue("SVN", ui.path(`https://plugins.svn.wordpress.org/${slug}`));
|
|
35
39
|
ui.keyValue("Working copy", ui.path(svnDir));
|
|
36
40
|
ui.keyValue("Version", ui.value(version));
|
|
41
|
+
if (username) {
|
|
42
|
+
ui.keyValue("SVN user", ui.value(username));
|
|
43
|
+
}
|
|
37
44
|
if (options.dryRun) {
|
|
38
45
|
ui.section("Dry-run command plan");
|
|
39
46
|
for (const command of plan) {
|
|
@@ -41,11 +48,15 @@ export async function release(pluginPath, rawOptions) {
|
|
|
41
48
|
}
|
|
42
49
|
return;
|
|
43
50
|
}
|
|
44
|
-
await
|
|
51
|
+
await ensureSvnAvailable({ autoInstall: options.installSvn, interactive: process.stdin.isTTY });
|
|
52
|
+
await ui.task("Preparing SVN working copy", () => ensureWorkingCopy(slug, svnDir));
|
|
45
53
|
await ui.task("Syncing plugin files to trunk", () => syncTrunk(rootDir, path.join(svnDir, "trunk"), options.ignore));
|
|
46
|
-
await
|
|
54
|
+
await syncAssets(rootDir, path.join(svnDir, "assets"));
|
|
55
|
+
await ui.task("Adding changed files to SVN", () => runSvn(["add", "--force", "."], svnDir));
|
|
47
56
|
await ui.task("Removing deleted files from SVN", () => deleteMissingFiles(svnDir));
|
|
48
57
|
await ui.task(`Creating tag ${version}`, () => createTag(version, svnDir));
|
|
58
|
+
await setAssetMimeTypes(svnDir);
|
|
59
|
+
await ui.task("Updating SVN working copy", () => runSvn(["update"], svnDir));
|
|
49
60
|
const status = await runSvn(["status"], svnDir, { capture: true });
|
|
50
61
|
ui.section("SVN status");
|
|
51
62
|
console.log(status || ui.muted("No SVN changes detected."));
|
|
@@ -58,21 +69,26 @@ export async function release(pluginPath, rawOptions) {
|
|
|
58
69
|
throw new Error("SVN release cancelled before commit.");
|
|
59
70
|
}
|
|
60
71
|
}
|
|
61
|
-
|
|
72
|
+
const credentials = await resolveSvnCredentials(username);
|
|
73
|
+
await ui.task("Committing SVN release", () => runSvn(["commit", "-m", message, ...svnCredentialArgs(credentials)], svnDir));
|
|
62
74
|
}
|
|
63
75
|
export function createReleaseCommandPlan(slug, svnDir, version, message, username) {
|
|
64
76
|
return [
|
|
65
77
|
{
|
|
66
78
|
command: "svn",
|
|
67
|
-
args: ["checkout", `https://plugins.svn.wordpress.org/${slug}`, svnDir
|
|
79
|
+
args: ["checkout", `https://plugins.svn.wordpress.org/${slug}`, svnDir]
|
|
68
80
|
},
|
|
69
|
-
{ command: "svn", args: ["add", "--force", "
|
|
81
|
+
{ command: "svn", args: ["add", "--force", "."], cwd: svnDir },
|
|
70
82
|
{ command: "svn", args: ["copy", "trunk", `tags/${version}`], cwd: svnDir },
|
|
83
|
+
{ command: "svn", args: ["update"], cwd: svnDir },
|
|
71
84
|
{ command: "svn", args: ["status"], cwd: svnDir },
|
|
72
|
-
{ command: "svn", args: ["commit", "-m", message, ...
|
|
85
|
+
{ command: "svn", args: ["commit", "-m", message, ...svnCredentialPreviewArgs(username)], cwd: svnDir }
|
|
73
86
|
];
|
|
74
87
|
}
|
|
75
88
|
export async function svnRepositoryExists(slug) {
|
|
89
|
+
if (!(await isSvnAvailable())) {
|
|
90
|
+
throw new Error("`svn` is not installed. Pressship can install it when you run a release or get command.");
|
|
91
|
+
}
|
|
76
92
|
const result = await execa("svn", ["info", `https://plugins.svn.wordpress.org/${slug}`], {
|
|
77
93
|
reject: false,
|
|
78
94
|
stdout: "pipe",
|
|
@@ -80,14 +96,14 @@ export async function svnRepositoryExists(slug) {
|
|
|
80
96
|
});
|
|
81
97
|
return result.exitCode === 0;
|
|
82
98
|
}
|
|
83
|
-
async function ensureWorkingCopy(slug, svnDir
|
|
99
|
+
async function ensureWorkingCopy(slug, svnDir) {
|
|
84
100
|
await mkdir(path.dirname(svnDir), { recursive: true });
|
|
85
101
|
try {
|
|
86
102
|
await runSvn(["info"], svnDir, { capture: true });
|
|
87
103
|
await runSvn(["update"], svnDir);
|
|
88
104
|
}
|
|
89
105
|
catch {
|
|
90
|
-
await runSvn(["checkout", `https://plugins.svn.wordpress.org/${slug}`, svnDir
|
|
106
|
+
await runSvn(["checkout", `https://plugins.svn.wordpress.org/${slug}`, svnDir], process.cwd());
|
|
91
107
|
}
|
|
92
108
|
}
|
|
93
109
|
async function syncTrunk(pluginRoot, trunkDir, ignore) {
|
|
@@ -101,6 +117,17 @@ async function syncTrunk(pluginRoot, trunkDir, ignore) {
|
|
|
101
117
|
await cp(source, destination);
|
|
102
118
|
}
|
|
103
119
|
}
|
|
120
|
+
async function syncAssets(pluginRoot, assetsDir) {
|
|
121
|
+
const sourceAssetsDir = path.join(pluginRoot, ".wordpress-org");
|
|
122
|
+
if (!pathExists(sourceAssetsDir)) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
await ui.task("Syncing WordPress.org assets", async () => {
|
|
126
|
+
await mkdir(assetsDir, { recursive: true });
|
|
127
|
+
await emptyDirectory(assetsDir);
|
|
128
|
+
await cp(sourceAssetsDir, assetsDir, { recursive: true });
|
|
129
|
+
});
|
|
130
|
+
}
|
|
104
131
|
async function emptyDirectory(directory) {
|
|
105
132
|
const entries = await readdir(directory, { withFileTypes: true });
|
|
106
133
|
for (const entry of entries) {
|
|
@@ -129,20 +156,70 @@ async function createTag(version, svnDir) {
|
|
|
129
156
|
await mkdir(path.dirname(tagPath), { recursive: true });
|
|
130
157
|
await runSvn(["copy", "trunk", `tags/${version}`], svnDir);
|
|
131
158
|
}
|
|
159
|
+
async function setAssetMimeTypes(svnDir) {
|
|
160
|
+
const assetsDir = path.join(svnDir, "assets");
|
|
161
|
+
if (!pathExists(assetsDir)) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
const mimeTypes = new Map([
|
|
165
|
+
[".gif", "image/gif"],
|
|
166
|
+
[".jpg", "image/jpeg"],
|
|
167
|
+
[".jpeg", "image/jpeg"],
|
|
168
|
+
[".png", "image/png"],
|
|
169
|
+
[".svg", "image/svg+xml"]
|
|
170
|
+
]);
|
|
171
|
+
const entries = await readdir(assetsDir, { withFileTypes: true });
|
|
172
|
+
for (const entry of entries) {
|
|
173
|
+
if (!entry.isFile()) {
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
const mimeType = mimeTypes.get(path.extname(entry.name).toLowerCase());
|
|
177
|
+
if (mimeType) {
|
|
178
|
+
await runSvn(["propset", "svn:mime-type", mimeType, path.posix.join("assets", entry.name)], svnDir);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
132
182
|
async function runSvn(args, cwd, options = {}) {
|
|
133
183
|
const result = await execa("svn", args, {
|
|
134
184
|
cwd,
|
|
135
185
|
reject: false,
|
|
136
186
|
stdout: options.capture ? "pipe" : "inherit",
|
|
137
187
|
stderr: options.capture ? "pipe" : "inherit"
|
|
188
|
+
}).catch((error) => {
|
|
189
|
+
if (isMissingSvnError(error)) {
|
|
190
|
+
throw new Error("`svn` is required for WordPress.org SVN releases. Install Subversion and try again.");
|
|
191
|
+
}
|
|
192
|
+
throw error;
|
|
138
193
|
});
|
|
194
|
+
if (result.failed && result.exitCode === undefined && !result.stderr && !result.stdout) {
|
|
195
|
+
throw new Error("`svn` is required for WordPress.org SVN releases. Install Subversion and try again.");
|
|
196
|
+
}
|
|
139
197
|
if (result.exitCode !== 0) {
|
|
140
|
-
throw new Error(result.stderr || result.stdout || `svn ${args.join(" ")} failed.`);
|
|
198
|
+
throw new Error(result.stderr || result.stdout || `svn ${redactSvnArgs(args).join(" ")} failed.`);
|
|
141
199
|
}
|
|
142
200
|
return `${result.stdout ?? ""}\n${result.stderr ?? ""}`.trim();
|
|
143
201
|
}
|
|
144
|
-
function
|
|
145
|
-
return
|
|
202
|
+
function svnCredentialArgs(credentials) {
|
|
203
|
+
return [
|
|
204
|
+
"--no-auth-cache",
|
|
205
|
+
"--non-interactive",
|
|
206
|
+
"--username",
|
|
207
|
+
credentials.username,
|
|
208
|
+
"--password",
|
|
209
|
+
credentials.password
|
|
210
|
+
];
|
|
211
|
+
}
|
|
212
|
+
function svnCredentialPreviewArgs(username) {
|
|
213
|
+
return username
|
|
214
|
+
? ["--no-auth-cache", "--non-interactive", "--username", username, "--password", "<saved-svn-password>"]
|
|
215
|
+
: [];
|
|
216
|
+
}
|
|
217
|
+
function redactSvnArgs(args) {
|
|
218
|
+
return args.map((arg, index) => (args[index - 1] === "--password" ? "<redacted>" : arg));
|
|
219
|
+
}
|
|
220
|
+
function isMissingSvnError(error) {
|
|
221
|
+
return (error instanceof Error &&
|
|
222
|
+
("code" in error ? error.code === "ENOENT" : /ENOENT|not found/i.test(error.message)));
|
|
146
223
|
}
|
|
147
224
|
function formatCommand(command) {
|
|
148
225
|
const prefix = command.cwd ? `(cd ${command.cwd} && ` : "";
|
package/dist/svn/release.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/svn/release.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/svn/release.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type SubversionInstallCommand = {
|
|
2
|
+
command: string;
|
|
3
|
+
args: string[];
|
|
4
|
+
};
|
|
5
|
+
export type SubversionInstallPlan = {
|
|
6
|
+
platform: NodeJS.Platform;
|
|
7
|
+
manager?: string;
|
|
8
|
+
commands: SubversionInstallCommand[];
|
|
9
|
+
instructions: string[];
|
|
10
|
+
};
|
|
11
|
+
export type EnsureSvnOptions = {
|
|
12
|
+
autoInstall?: boolean;
|
|
13
|
+
interactive?: boolean;
|
|
14
|
+
};
|
|
15
|
+
export declare function ensureSvnAvailable(options?: EnsureSvnOptions): Promise<void>;
|
|
16
|
+
export declare function isSvnAvailable(): Promise<boolean>;
|
|
17
|
+
export declare function getSubversionInstallPlan(platform: NodeJS.Platform, availableCommands: Iterable<string>): SubversionInstallPlan;
|
|
18
|
+
export declare function formatSubversionInstallInstructions(plan: SubversionInstallPlan): string;
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { confirm } from "@inquirer/prompts";
|
|
2
|
+
import { execa } from "execa";
|
|
3
|
+
import { ui } from "../ui.js";
|
|
4
|
+
const INSTALL_COMMANDS = ["brew", "apt-get", "dnf", "yum", "pacman", "zypper", "apk", "sudo", "winget", "choco"];
|
|
5
|
+
export async function ensureSvnAvailable(options = {}) {
|
|
6
|
+
if (await isSvnAvailable()) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
const plan = getSubversionInstallPlan(process.platform, await findAvailableInstallCommands());
|
|
10
|
+
const autoInstall = options.autoInstall ?? true;
|
|
11
|
+
const interactive = options.interactive ?? process.stdin.isTTY;
|
|
12
|
+
if (!autoInstall || plan.commands.length === 0) {
|
|
13
|
+
throw new Error(formatSubversionInstallInstructions(plan));
|
|
14
|
+
}
|
|
15
|
+
if (!interactive) {
|
|
16
|
+
throw new Error([
|
|
17
|
+
"Subversion (`svn`) is required, but it is not installed.",
|
|
18
|
+
"Automatic installation needs an interactive terminal.",
|
|
19
|
+
...plan.instructions.map((instruction) => `- ${instruction}`)
|
|
20
|
+
].join("\n"));
|
|
21
|
+
}
|
|
22
|
+
ui.warn("Subversion (`svn`) is required, but it is not installed.");
|
|
23
|
+
ui.info(`Detected ${plan.manager}. Pressship can run: ${formatInstallCommands(plan.commands)}`);
|
|
24
|
+
const shouldInstall = await confirm({ message: "Install Subversion now?", default: true });
|
|
25
|
+
if (!shouldInstall) {
|
|
26
|
+
throw new Error(formatSubversionInstallInstructions(plan));
|
|
27
|
+
}
|
|
28
|
+
for (const command of plan.commands) {
|
|
29
|
+
await execa(command.command, command.args, { stdio: "inherit" });
|
|
30
|
+
}
|
|
31
|
+
if (!(await isSvnAvailable())) {
|
|
32
|
+
throw new Error("Subversion install command finished, but `svn` is still not available on PATH. Open a new terminal or install it manually.");
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export async function isSvnAvailable() {
|
|
36
|
+
return commandExists("svn");
|
|
37
|
+
}
|
|
38
|
+
export function getSubversionInstallPlan(platform, availableCommands) {
|
|
39
|
+
const available = new Set(availableCommands);
|
|
40
|
+
if (platform === "darwin") {
|
|
41
|
+
if (available.has("brew")) {
|
|
42
|
+
return {
|
|
43
|
+
platform,
|
|
44
|
+
manager: "Homebrew",
|
|
45
|
+
commands: [{ command: "brew", args: ["install", "subversion"] }],
|
|
46
|
+
instructions: ["Install Subversion with Homebrew: brew install subversion"]
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
platform,
|
|
51
|
+
commands: [],
|
|
52
|
+
instructions: [
|
|
53
|
+
"Install Homebrew from https://brew.sh, then install Subversion: brew install subversion"
|
|
54
|
+
]
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
if (platform === "linux") {
|
|
58
|
+
if (available.has("apt-get")) {
|
|
59
|
+
const updateCommand = privilegedCommand(available, "apt-get", ["update"]);
|
|
60
|
+
const installCommand = privilegedCommand(available, "apt-get", ["install", "-y", "subversion"]);
|
|
61
|
+
return {
|
|
62
|
+
platform,
|
|
63
|
+
manager: "apt",
|
|
64
|
+
commands: [updateCommand, installCommand],
|
|
65
|
+
instructions: ["Install Subversion with apt: sudo apt-get update && sudo apt-get install -y subversion"]
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
if (available.has("dnf")) {
|
|
69
|
+
return linuxSingleCommandPlan(platform, available, "dnf", ["install", "-y", "subversion"]);
|
|
70
|
+
}
|
|
71
|
+
if (available.has("yum")) {
|
|
72
|
+
return linuxSingleCommandPlan(platform, available, "yum", ["install", "-y", "subversion"]);
|
|
73
|
+
}
|
|
74
|
+
if (available.has("pacman")) {
|
|
75
|
+
return linuxSingleCommandPlan(platform, available, "pacman", ["-Sy", "--noconfirm", "subversion"]);
|
|
76
|
+
}
|
|
77
|
+
if (available.has("zypper")) {
|
|
78
|
+
return linuxSingleCommandPlan(platform, available, "zypper", ["install", "-y", "subversion"]);
|
|
79
|
+
}
|
|
80
|
+
if (available.has("apk")) {
|
|
81
|
+
const command = privilegedCommand(available, "apk", ["add", "subversion"]);
|
|
82
|
+
return {
|
|
83
|
+
platform,
|
|
84
|
+
manager: "apk",
|
|
85
|
+
commands: [command],
|
|
86
|
+
instructions: ["Install Subversion with apk: sudo apk add subversion"]
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
platform,
|
|
91
|
+
commands: [],
|
|
92
|
+
instructions: [
|
|
93
|
+
"Install Subversion with your system package manager, then rerun Pressship."
|
|
94
|
+
]
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
if (platform === "win32") {
|
|
98
|
+
if (available.has("winget")) {
|
|
99
|
+
return {
|
|
100
|
+
platform,
|
|
101
|
+
manager: "winget",
|
|
102
|
+
commands: [{ command: "winget", args: ["install", "--id", "Apache.Subversion", "-e"] }],
|
|
103
|
+
instructions: ["Install Subversion with winget: winget install --id Apache.Subversion -e"]
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
if (available.has("choco")) {
|
|
107
|
+
return {
|
|
108
|
+
platform,
|
|
109
|
+
manager: "Chocolatey",
|
|
110
|
+
commands: [{ command: "choco", args: ["install", "subversion", "-y"] }],
|
|
111
|
+
instructions: ["Install Subversion with Chocolatey: choco install subversion -y"]
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
platform,
|
|
116
|
+
commands: [],
|
|
117
|
+
instructions: [
|
|
118
|
+
"Install Subversion for Windows, then make sure svn.exe is available on PATH."
|
|
119
|
+
]
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
return {
|
|
123
|
+
platform,
|
|
124
|
+
commands: [],
|
|
125
|
+
instructions: ["Install Subversion for your operating system, then rerun Pressship."]
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
export function formatSubversionInstallInstructions(plan) {
|
|
129
|
+
return [
|
|
130
|
+
"Subversion (`svn`) is required, but it is not installed.",
|
|
131
|
+
...plan.instructions.map((instruction) => `- ${instruction}`)
|
|
132
|
+
].join("\n");
|
|
133
|
+
}
|
|
134
|
+
async function findAvailableInstallCommands() {
|
|
135
|
+
const found = new Set();
|
|
136
|
+
for (const command of INSTALL_COMMANDS) {
|
|
137
|
+
if (await commandExists(command)) {
|
|
138
|
+
found.add(command);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return found;
|
|
142
|
+
}
|
|
143
|
+
async function commandExists(command) {
|
|
144
|
+
const result = process.platform === "win32"
|
|
145
|
+
? await execa("where", [command], { reject: false, stdout: "ignore", stderr: "ignore" })
|
|
146
|
+
: await execa("sh", ["-c", `command -v ${quoteShell(command)}`], {
|
|
147
|
+
reject: false,
|
|
148
|
+
stdout: "ignore",
|
|
149
|
+
stderr: "ignore"
|
|
150
|
+
});
|
|
151
|
+
return result.exitCode === 0;
|
|
152
|
+
}
|
|
153
|
+
function linuxSingleCommandPlan(platform, available, manager, args) {
|
|
154
|
+
const command = privilegedCommand(available, manager, args);
|
|
155
|
+
return {
|
|
156
|
+
platform,
|
|
157
|
+
manager,
|
|
158
|
+
commands: [command],
|
|
159
|
+
instructions: [`Install Subversion with ${manager}: sudo ${manager} ${args.join(" ")}`]
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
function privilegedCommand(available, command, args) {
|
|
163
|
+
return available.has("sudo") ? { command: "sudo", args: [command, ...args] } : { command, args };
|
|
164
|
+
}
|
|
165
|
+
function formatInstallCommands(commands) {
|
|
166
|
+
return commands.map((command) => `${command.command} ${command.args.join(" ")}`).join(" && ");
|
|
167
|
+
}
|
|
168
|
+
function quoteShell(value) {
|
|
169
|
+
return `'${value.replaceAll("'", "'\\''")}'`;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=subversion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subversion.js","sourceRoot":"","sources":["../../src/svn/subversion.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/paths.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare function getConfigDir(): string;
|
|
2
2
|
export declare function ensureConfigDir(): Promise<string>;
|
|
3
3
|
export declare function getStorageStatePath(): string;
|
|
4
|
+
export declare function getSvnCredentialsPath(): string;
|
|
4
5
|
export declare function getDebugDir(): string;
|
|
5
6
|
export declare function ensureDebugDir(): Promise<string>;
|
|
6
7
|
export declare function getCacheDir(): string;
|
package/dist/utils/paths.js
CHANGED
|
@@ -23,6 +23,9 @@ export async function ensureConfigDir() {
|
|
|
23
23
|
export function getStorageStatePath() {
|
|
24
24
|
return path.join(getConfigDir(), "wordpress-org-storage.json");
|
|
25
25
|
}
|
|
26
|
+
export function getSvnCredentialsPath() {
|
|
27
|
+
return path.join(getConfigDir(), "svn-credentials.json");
|
|
28
|
+
}
|
|
26
29
|
export function getDebugDir() {
|
|
27
30
|
return path.join(getConfigDir(), "debug");
|
|
28
31
|
}
|
package/dist/utils/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,OAAO,GAAG,WAAW,CAAC;AAE5B,MAAM,UAAU,YAAY;IAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,4BAA4B,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC"}
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,OAAO,GAAG,WAAW,CAAC;AAE5B,MAAM,UAAU,YAAY;IAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,4BAA4B,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,sBAAsB,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -14,6 +14,7 @@ declare const publishOptionsSchema: z.ZodObject<{
|
|
|
14
14
|
svnDir: z.ZodOptional<z.ZodString>;
|
|
15
15
|
username: z.ZodOptional<z.ZodString>;
|
|
16
16
|
message: z.ZodOptional<z.ZodString>;
|
|
17
|
+
installSvn: z.ZodDefault<z.ZodBoolean>;
|
|
17
18
|
}, z.core.$strip>;
|
|
18
19
|
export type PublishOptions = z.input<typeof publishOptionsSchema>;
|
|
19
20
|
export type PublishAction = "submit" | "release" | "prompt";
|