@platforma-sdk/pl-cli 0.7.69 → 0.7.71
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/bin/run.mjs +5 -7
- package/dist/base_command.d.ts +31 -42
- package/dist/cli.d.ts +3 -0
- package/dist/cli.js +181 -247
- package/dist/cli.js.map +1 -1
- package/dist/cmd/admin/copy-project.d.ts +2 -16
- package/dist/cmd/project/delete.d.ts +2 -18
- package/dist/cmd/project/duplicate.d.ts +2 -19
- package/dist/cmd/project/info.d.ts +2 -17
- package/dist/cmd/project/list.d.ts +2 -14
- package/dist/cmd/project/rename.d.ts +2 -18
- package/dist/cmd-opts.d.ts +7 -17
- package/package.json +5 -25
- package/src/base_command.ts +58 -78
- package/src/cli.ts +32 -0
- package/src/cmd/admin/copy-project.ts +75 -76
- package/src/cmd/project/delete.ts +45 -48
- package/src/cmd/project/duplicate.ts +52 -59
- package/src/cmd/project/info.ts +40 -42
- package/src/cmd/project/list.ts +44 -39
- package/src/cmd/project/rename.ts +23 -30
- package/src/cmd-opts.ts +37 -54
- package/dist/cmd/index.d.ts +0 -14
- package/src/cmd/index.ts +0 -17
|
@@ -1,40 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Command, Option } from "commander";
|
|
2
|
+
import { connect } from "../../base_command";
|
|
3
|
+
import { addOptions, GlobalOptions, UserAuthOptions, AdminTargetOptions } from "../../cmd-opts";
|
|
3
4
|
import { resolveProject, renameProject } from "../../project_ops";
|
|
4
5
|
import { outputJson, outputText } from "../../output";
|
|
5
6
|
import { resourceIdToString } from "@milaboratories/pl-client";
|
|
6
7
|
|
|
7
|
-
export default
|
|
8
|
-
|
|
8
|
+
export default function projectRenameCommand(): Command {
|
|
9
|
+
const cmd = new Command("rename").description("Rename a project.");
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
required: true,
|
|
14
|
-
}),
|
|
15
|
-
};
|
|
11
|
+
cmd.argument("<project>", "Project ID or label");
|
|
12
|
+
addOptions(cmd, GlobalOptions(), UserAuthOptions(), AdminTargetOptions());
|
|
13
|
+
cmd.addOption(new Option("-n, --name <name>", "New name for the project").makeOptionMandatory());
|
|
16
14
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
summary: "New name for the project",
|
|
22
|
-
helpValue: "<name>",
|
|
23
|
-
required: true,
|
|
24
|
-
}),
|
|
25
|
-
};
|
|
15
|
+
cmd.action(async (project: string, flags) => {
|
|
16
|
+
const { pl, projectListRid } = await connect(flags);
|
|
17
|
+
try {
|
|
18
|
+
const { id, rid } = await resolveProject(pl, projectListRid, project);
|
|
26
19
|
|
|
27
|
-
|
|
28
|
-
const { args, flags } = await this.parse(ProjectRename);
|
|
29
|
-
const { pl, projectListRid } = await this.connect(flags);
|
|
30
|
-
const { id, rid } = await resolveProject(pl, projectListRid, args.project);
|
|
20
|
+
await renameProject(pl, rid, flags.name);
|
|
31
21
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
22
|
+
if (flags.format === "json") {
|
|
23
|
+
outputJson({ id, rid: resourceIdToString(rid), label: flags.name });
|
|
24
|
+
} else {
|
|
25
|
+
outputText(`Renamed project to "${flags.name}"`);
|
|
26
|
+
}
|
|
27
|
+
} finally {
|
|
28
|
+
await pl.close();
|
|
38
29
|
}
|
|
39
|
-
}
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
return cmd;
|
|
40
33
|
}
|
package/src/cmd-opts.ts
CHANGED
|
@@ -1,60 +1,43 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Command, Option } from "commander";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}),
|
|
11
|
-
format: Flags.string({
|
|
12
|
-
char: "f",
|
|
13
|
-
summary: "Output format",
|
|
14
|
-
options: ["text", "json"],
|
|
15
|
-
default: "text",
|
|
16
|
-
}),
|
|
17
|
-
};
|
|
3
|
+
/** Add one or more groups of options to a command, preserving group order. */
|
|
4
|
+
export function addOptions(cmd: Command, ...optionGroups: Option[][]): Command {
|
|
5
|
+
for (const group of optionGroups) {
|
|
6
|
+
for (const opt of group) cmd.addOption(opt);
|
|
7
|
+
}
|
|
8
|
+
return cmd;
|
|
9
|
+
}
|
|
18
10
|
|
|
19
|
-
export const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
};
|
|
11
|
+
export const GlobalOptions = (): Option[] => [
|
|
12
|
+
new Option("-a, --address <url>", "Platforma server address")
|
|
13
|
+
.env("PL_ADDRESS")
|
|
14
|
+
.makeOptionMandatory(),
|
|
15
|
+
new Option("-f, --format <format>", "Output format").choices(["text", "json"]).default("text"),
|
|
16
|
+
];
|
|
17
|
+
|
|
18
|
+
export const UserAuthOptions = (): Option[] => [
|
|
19
|
+
new Option("-u, --user <user>", "Username for authentication").env("PL_USER"),
|
|
20
|
+
new Option("-p, --password <password>", "Password for authentication").env("PL_PASSWORD"),
|
|
21
|
+
];
|
|
31
22
|
|
|
32
23
|
/** Admin credentials only (for purely admin commands like copy-project). */
|
|
33
|
-
export const
|
|
34
|
-
"admin-user"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
env: "PL_ADMIN_PASSWORD",
|
|
42
|
-
required: true,
|
|
43
|
-
}),
|
|
44
|
-
};
|
|
24
|
+
export const AdminAuthOptions = (): Option[] => [
|
|
25
|
+
new Option("--admin-user <user>", "Admin/controller username")
|
|
26
|
+
.env("PL_ADMIN_USER")
|
|
27
|
+
.makeOptionMandatory(),
|
|
28
|
+
new Option("--admin-password <password>", "Admin/controller password")
|
|
29
|
+
.env("PL_ADMIN_PASSWORD")
|
|
30
|
+
.makeOptionMandatory(),
|
|
31
|
+
];
|
|
45
32
|
|
|
46
33
|
/** Admin credentials + target user (for regular commands that can optionally operate on another user). */
|
|
47
|
-
export const
|
|
48
|
-
"admin-user"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
summary: "Operate on this user's data (requires admin credentials)",
|
|
58
|
-
env: "PL_TARGET_USER",
|
|
59
|
-
}),
|
|
60
|
-
};
|
|
34
|
+
export const AdminTargetOptions = (): Option[] => [
|
|
35
|
+
new Option("--admin-user <user>", "Admin/controller username (enables admin mode)").env(
|
|
36
|
+
"PL_ADMIN_USER",
|
|
37
|
+
),
|
|
38
|
+
new Option("--admin-password <password>", "Admin/controller password").env("PL_ADMIN_PASSWORD"),
|
|
39
|
+
new Option(
|
|
40
|
+
"--target-user <user>",
|
|
41
|
+
"Operate on this user's data (requires admin credentials)",
|
|
42
|
+
).env("PL_TARGET_USER"),
|
|
43
|
+
];
|
package/dist/cmd/index.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { default as ProjectList } from './project/list';
|
|
2
|
-
import { default as ProjectInfo } from './project/info';
|
|
3
|
-
import { default as ProjectDuplicate } from './project/duplicate';
|
|
4
|
-
import { default as ProjectRename } from './project/rename';
|
|
5
|
-
import { default as ProjectDelete } from './project/delete';
|
|
6
|
-
import { default as AdminCopyProject } from './admin/copy-project';
|
|
7
|
-
export declare const COMMANDS: {
|
|
8
|
-
"project:list": typeof ProjectList;
|
|
9
|
-
"project:info": typeof ProjectInfo;
|
|
10
|
-
"project:duplicate": typeof ProjectDuplicate;
|
|
11
|
-
"project:rename": typeof ProjectRename;
|
|
12
|
-
"project:delete": typeof ProjectDelete;
|
|
13
|
-
"admin:copy-project": typeof AdminCopyProject;
|
|
14
|
-
};
|
package/src/cmd/index.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
// Command index for oclif. Run `pnpm run oclif:index` to regenerate.
|
|
2
|
-
|
|
3
|
-
import ProjectList from "./project/list";
|
|
4
|
-
import ProjectInfo from "./project/info";
|
|
5
|
-
import ProjectDuplicate from "./project/duplicate";
|
|
6
|
-
import ProjectRename from "./project/rename";
|
|
7
|
-
import ProjectDelete from "./project/delete";
|
|
8
|
-
import AdminCopyProject from "./admin/copy-project";
|
|
9
|
-
|
|
10
|
-
export const COMMANDS = {
|
|
11
|
-
"project:list": ProjectList,
|
|
12
|
-
"project:info": ProjectInfo,
|
|
13
|
-
"project:duplicate": ProjectDuplicate,
|
|
14
|
-
"project:rename": ProjectRename,
|
|
15
|
-
"project:delete": ProjectDelete,
|
|
16
|
-
"admin:copy-project": AdminCopyProject,
|
|
17
|
-
};
|