@cartesi/cli 1.5.0 → 2.0.0-alpha.1
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/dist/baseCommand.d.ts +2 -0
- package/dist/baseCommand.d.ts.map +1 -1
- package/dist/baseCommand.js +10 -5
- package/dist/builder/directory.d.ts +3 -0
- package/dist/builder/directory.d.ts.map +1 -0
- package/dist/builder/directory.js +37 -0
- package/dist/builder/docker.d.ts +10 -0
- package/dist/builder/docker.d.ts.map +1 -0
- package/dist/builder/docker.js +112 -0
- package/dist/builder/empty.d.ts +3 -0
- package/dist/builder/empty.d.ts.map +1 -0
- package/dist/builder/empty.js +21 -0
- package/dist/builder/index.d.ts +6 -0
- package/dist/builder/index.d.ts.map +1 -0
- package/dist/builder/index.js +5 -0
- package/dist/builder/none.d.ts +3 -0
- package/dist/builder/none.d.ts.map +1 -0
- package/dist/builder/none.js +11 -0
- package/dist/builder/tar.d.ts +3 -0
- package/dist/builder/tar.d.ts.map +1 -0
- package/dist/builder/tar.js +30 -0
- package/dist/commands/build.d.ts +3 -15
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +53 -194
- package/dist/commands/shell.d.ts +2 -1
- package/dist/commands/shell.d.ts.map +1 -1
- package/dist/commands/shell.js +41 -41
- package/dist/config.d.ts +103 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +378 -0
- package/dist/contracts.d.ts +492 -1038
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +223 -498
- package/dist/exec/cartesi-machine.d.ts +9 -0
- package/dist/exec/cartesi-machine.d.ts.map +1 -0
- package/dist/exec/cartesi-machine.js +20 -0
- package/dist/exec/crane.d.ts +15 -0
- package/dist/exec/crane.d.ts.map +1 -0
- package/dist/exec/crane.js +17 -0
- package/dist/exec/genext2fs.d.ts +28 -0
- package/dist/exec/genext2fs.d.ts.map +1 -0
- package/dist/exec/genext2fs.js +44 -0
- package/dist/exec/index.d.ts +5 -0
- package/dist/exec/index.d.ts.map +1 -0
- package/dist/exec/index.js +4 -0
- package/dist/exec/mksquashfs.d.ts +21 -0
- package/dist/exec/mksquashfs.d.ts.map +1 -0
- package/dist/exec/mksquashfs.js +45 -0
- package/dist/exec/util.d.ts +36 -0
- package/dist/exec/util.d.ts.map +1 -0
- package/dist/exec/util.js +78 -0
- package/dist/machine.d.ts +6 -0
- package/dist/machine.d.ts.map +1 -0
- package/dist/machine.js +80 -0
- package/dist/node/docker-compose-anvil.yaml +4 -3
- package/dist/node/docker-compose-bundler.yaml +1 -1
- package/dist/node/docker-compose-paymaster.yaml +1 -1
- package/oclif.manifest.json +32 -95
- package/package.json +7 -7
- package/dist/commands/send/dapp-address.d.ts +0 -9
- package/dist/commands/send/dapp-address.d.ts.map +0 -1
- package/dist/commands/send/dapp-address.js +0 -20
package/dist/baseCommand.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Command, Interfaces } from "@oclif/core";
|
|
2
2
|
import { Address, Hash } from "viem";
|
|
3
|
+
import { Config } from "./config.js";
|
|
3
4
|
export type Flags<T extends typeof Command> = Interfaces.InferredFlags<(typeof BaseCommand)["baseFlags"] & T["flags"]>;
|
|
4
5
|
export type Args<T extends typeof Command> = Interfaces.InferredArgs<T["args"]>;
|
|
5
6
|
export type AddressBook = Record<string, Address>;
|
|
@@ -8,6 +9,7 @@ export declare abstract class BaseCommand<T extends typeof Command> extends Comm
|
|
|
8
9
|
protected args: Args<T>;
|
|
9
10
|
protected getServiceState(projectName: string, serviceName: string): Promise<string | undefined>;
|
|
10
11
|
protected getContextPath(...paths: string[]): string;
|
|
12
|
+
protected getApplicationConfig(configPath: string): Config;
|
|
11
13
|
protected getMachineHash(): Hash | undefined;
|
|
12
14
|
protected logPrompt({ title, value }: {
|
|
13
15
|
title: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseCommand.d.ts","sourceRoot":"","sources":["../src/baseCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKlD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAsB,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"baseCommand.d.ts","sourceRoot":"","sources":["../src/baseCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKlD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAsB,MAAM,MAAM,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAS,MAAM,aAAa,CAAC;AAiB5C,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,OAAO,OAAO,IAAI,UAAU,CAAC,aAAa,CAClE,CAAC,OAAO,WAAW,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CACjD,CAAC;AACF,MAAM,MAAM,IAAI,CAAC,CAAC,SAAS,OAAO,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAChF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAElD,8BAAsB,WAAW,CAAC,CAAC,SAAS,OAAO,OAAO,CAAE,SAAQ,OAAO;IACvE,SAAS,CAAC,KAAK,EAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,SAAS,CAAC,IAAI,EAAG,IAAI,CAAC,CAAC,CAAC,CAAC;cAET,eAAe,CAC3B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAe9B,SAAS,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIpD,SAAS,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAM1D,SAAS,CAAC,cAAc,IAAI,IAAI,GAAG,SAAS;IAY5C,SAAS,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;cAItD,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;cAKzC,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAiCzC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAYrC"}
|
package/dist/baseCommand.js
CHANGED
|
@@ -4,7 +4,8 @@ import { execa } from "execa";
|
|
|
4
4
|
import fs from "fs";
|
|
5
5
|
import path from "path";
|
|
6
6
|
import { getAddress, isHash } from "viem";
|
|
7
|
-
import {
|
|
7
|
+
import { parse } from "./config.js";
|
|
8
|
+
import { applicationFactoryAddress, authorityFactoryAddress, erc1155BatchPortalAddress, erc1155SinglePortalAddress, erc20PortalAddress, erc721PortalAddress, etherPortalAddress, inputBoxAddress, selfHostedApplicationFactoryAddress, testMultiTokenAddress, testNftAddress, testTokenAddress, } from "./contracts.js";
|
|
8
9
|
export class BaseCommand extends Command {
|
|
9
10
|
async getServiceState(projectName, serviceName) {
|
|
10
11
|
// get service information
|
|
@@ -23,6 +24,11 @@ export class BaseCommand extends Command {
|
|
|
23
24
|
getContextPath(...paths) {
|
|
24
25
|
return path.join(".cartesi", ...paths);
|
|
25
26
|
}
|
|
27
|
+
getApplicationConfig(configPath) {
|
|
28
|
+
return fs.existsSync(configPath)
|
|
29
|
+
? parse(fs.readFileSync(configPath).toString())
|
|
30
|
+
: parse("");
|
|
31
|
+
}
|
|
26
32
|
getMachineHash() {
|
|
27
33
|
// read hash of the cartesi machine snapshot, if one exists
|
|
28
34
|
const hashPath = this.getContextPath("image", "hash");
|
|
@@ -45,10 +51,9 @@ export class BaseCommand extends Command {
|
|
|
45
51
|
const applicationAddress = await this.getApplicationAddress();
|
|
46
52
|
// build rollups contracts address book
|
|
47
53
|
const contracts = {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
DAppAddressRelay: dAppAddressRelayAddress,
|
|
54
|
+
Application: applicationAddress,
|
|
55
|
+
ApplicationFactory: applicationFactoryAddress,
|
|
56
|
+
AuthorityFactory: authorityFactoryAddress,
|
|
52
57
|
EntryPointV06: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
|
|
53
58
|
EntryPointV07: "0x0000000071727De22E5E9d8BAf0edAc6f37da032",
|
|
54
59
|
ERC1155BatchPortal: erc1155BatchPortalAddress,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../../src/builder/directory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGpD,eAAO,MAAM,KAAK,SACR,MAAM,SACL,oBAAoB,YACjB,MAAM,eACH,MAAM,KACpB,OAAO,CAAC,IAAI,CAkCd,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import fs from "fs-extra";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { genext2fs, mksquashfs } from "../exec/index.js";
|
|
4
|
+
export const build = async (name, drive, sdkImage, destination) => {
|
|
5
|
+
const filename = `${name}.${drive.format}`;
|
|
6
|
+
// copy directory to destination
|
|
7
|
+
const dest = path.join(destination, name);
|
|
8
|
+
await fs.mkdirp(dest);
|
|
9
|
+
await fs.copy(drive.directory, dest);
|
|
10
|
+
try {
|
|
11
|
+
switch (drive.format) {
|
|
12
|
+
case "ext2": {
|
|
13
|
+
await genext2fs.fromDirectory({
|
|
14
|
+
extraSize: drive.extraSize,
|
|
15
|
+
input: name,
|
|
16
|
+
output: filename,
|
|
17
|
+
cwd: destination,
|
|
18
|
+
image: sdkImage,
|
|
19
|
+
});
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
case "sqfs": {
|
|
23
|
+
await mksquashfs.fromDirectory({
|
|
24
|
+
input: name,
|
|
25
|
+
output: filename,
|
|
26
|
+
cwd: destination,
|
|
27
|
+
image: sdkImage,
|
|
28
|
+
});
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
finally {
|
|
34
|
+
// delete copied
|
|
35
|
+
await fs.remove(dest);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DockerDriveConfig } from "../config.js";
|
|
2
|
+
type ImageInfo = {
|
|
3
|
+
cmd: string[];
|
|
4
|
+
entrypoint: string[];
|
|
5
|
+
env: string[];
|
|
6
|
+
workdir: string;
|
|
7
|
+
};
|
|
8
|
+
export declare const build: (name: string, drive: DockerDriveConfig, sdkImage: string, destination: string) => Promise<ImageInfo | undefined>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=docker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/builder/docker.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAQjD,KAAK,SAAS,GAAG;IACb,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AA+DF,eAAO,MAAM,KAAK,SACR,MAAM,SACL,iBAAiB,YACd,MAAM,eACH,MAAM,KACpB,OAAO,CAAC,SAAS,GAAG,SAAS,CA4D/B,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { execa } from "execa";
|
|
2
|
+
import fs from "fs-extra";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import tmp from "tmp";
|
|
5
|
+
import { crane, genext2fs, mksquashfs } from "../exec/index.js";
|
|
6
|
+
/**
|
|
7
|
+
* Build Docker image (linux/riscv64). Returns image id.
|
|
8
|
+
*/
|
|
9
|
+
const buildImage = async (options) => {
|
|
10
|
+
const { context, dockerfile, tags, target } = options;
|
|
11
|
+
const buildResult = tmp.tmpNameSync();
|
|
12
|
+
const args = [
|
|
13
|
+
"buildx",
|
|
14
|
+
"build",
|
|
15
|
+
"--platform",
|
|
16
|
+
"linux/riscv64",
|
|
17
|
+
"--file",
|
|
18
|
+
dockerfile,
|
|
19
|
+
"--load",
|
|
20
|
+
"--iidfile",
|
|
21
|
+
buildResult,
|
|
22
|
+
context,
|
|
23
|
+
];
|
|
24
|
+
// set tags for the image built
|
|
25
|
+
args.push(...tags.map((tag) => ["--tag", tag]).flat());
|
|
26
|
+
if (target) {
|
|
27
|
+
args.push("--target", target);
|
|
28
|
+
}
|
|
29
|
+
await execa("docker", args, { stdio: "inherit" });
|
|
30
|
+
return fs.readFileSync(buildResult, "utf8");
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Query the image using docker image inspect
|
|
34
|
+
* @param image image id or name
|
|
35
|
+
* @returns Information about the image
|
|
36
|
+
*/
|
|
37
|
+
const getImageInfo = async (image) => {
|
|
38
|
+
const { stdout: jsonStr } = await execa("docker", [
|
|
39
|
+
"image",
|
|
40
|
+
"inspect",
|
|
41
|
+
image,
|
|
42
|
+
]);
|
|
43
|
+
// parse image info from docker inspect output
|
|
44
|
+
const [imageInfo] = JSON.parse(jsonStr);
|
|
45
|
+
// validate image architecture (must be riscv64)
|
|
46
|
+
if (imageInfo["Architecture"] !== "riscv64") {
|
|
47
|
+
throw new Error(`Invalid image Architecture: ${imageInfo["Architecture"]}. Expected riscv64`);
|
|
48
|
+
}
|
|
49
|
+
const info = {
|
|
50
|
+
cmd: imageInfo["Config"]["Cmd"] ?? [],
|
|
51
|
+
entrypoint: imageInfo["Config"]["Entrypoint"] ?? [],
|
|
52
|
+
env: imageInfo["Config"]["Env"] || [],
|
|
53
|
+
workdir: imageInfo["Config"]["WorkingDir"],
|
|
54
|
+
};
|
|
55
|
+
return info;
|
|
56
|
+
};
|
|
57
|
+
export const build = async (name, drive, sdkImage, destination) => {
|
|
58
|
+
const { format } = drive;
|
|
59
|
+
const ocitar = `${name}.oci.tar`;
|
|
60
|
+
const tar = `${name}.tar`;
|
|
61
|
+
const filename = `${name}.${format}`;
|
|
62
|
+
// use pre-existing image or build docker image
|
|
63
|
+
let image;
|
|
64
|
+
if (drive.image) {
|
|
65
|
+
image = drive.image;
|
|
66
|
+
await execa("docker", ["image", "pull", image]);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
image = await buildImage(drive);
|
|
70
|
+
}
|
|
71
|
+
// get image info
|
|
72
|
+
const imageInfo = await getImageInfo(image);
|
|
73
|
+
try {
|
|
74
|
+
// create OCI Docker tarball from Docker image
|
|
75
|
+
await execa("docker", ["image", "save", image, "-o", ocitar], {
|
|
76
|
+
cwd: destination,
|
|
77
|
+
});
|
|
78
|
+
// create rootfs tar from OCI tar
|
|
79
|
+
await crane.exportImage({
|
|
80
|
+
stdin: fs.openSync(path.join(destination, ocitar), "r"),
|
|
81
|
+
stdout: fs.openSync(path.join(destination, tar), "w"),
|
|
82
|
+
image: sdkImage,
|
|
83
|
+
});
|
|
84
|
+
switch (format) {
|
|
85
|
+
case "ext2": {
|
|
86
|
+
await genext2fs.fromTar({
|
|
87
|
+
extraSize: drive.extraSize,
|
|
88
|
+
input: tar,
|
|
89
|
+
output: filename,
|
|
90
|
+
cwd: destination,
|
|
91
|
+
image: sdkImage,
|
|
92
|
+
});
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
case "sqfs": {
|
|
96
|
+
await mksquashfs.fromTar({
|
|
97
|
+
input: path.join(destination, tar),
|
|
98
|
+
output: filename,
|
|
99
|
+
cwd: destination,
|
|
100
|
+
image: sdkImage,
|
|
101
|
+
});
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
finally {
|
|
107
|
+
// delete intermediate files
|
|
108
|
+
await fs.remove(path.join(destination, ocitar));
|
|
109
|
+
await fs.remove(path.join(destination, tar));
|
|
110
|
+
}
|
|
111
|
+
return imageInfo;
|
|
112
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty.d.ts","sourceRoot":"","sources":["../../src/builder/empty.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD,eAAO,MAAM,KAAK,SACR,MAAM,SACL,gBAAgB,YACb,MAAM,eACH,MAAM,KACpB,OAAO,CAAC,IAAI,CAoBd,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import fs from "fs-extra";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { genext2fs } from "../exec/index.js";
|
|
4
|
+
export const build = async (name, drive, sdkImage, destination) => {
|
|
5
|
+
const filename = `${name}.${drive.format}`;
|
|
6
|
+
switch (drive.format) {
|
|
7
|
+
case "ext2": {
|
|
8
|
+
await genext2fs.empty({
|
|
9
|
+
output: filename,
|
|
10
|
+
size: drive.size,
|
|
11
|
+
cwd: destination,
|
|
12
|
+
image: sdkImage,
|
|
13
|
+
});
|
|
14
|
+
break;
|
|
15
|
+
}
|
|
16
|
+
case "raw": {
|
|
17
|
+
await fs.writeFile(path.join(destination, filename), Buffer.alloc(drive.size));
|
|
18
|
+
break;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { build as buildDirectory } from "./directory.js";
|
|
2
|
+
export { build as buildDocker } from "./docker.js";
|
|
3
|
+
export { build as buildEmpty } from "./empty.js";
|
|
4
|
+
export { build as buildNone } from "./none.js";
|
|
5
|
+
export { build as buildTar } from "./tar.js";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"none.d.ts","sourceRoot":"","sources":["../../src/builder/none.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAkB,MAAM,cAAc,CAAC;AAEnE,eAAO,MAAM,KAAK,SACR,MAAM,SACL,mBAAmB,eACb,MAAM,KACpB,OAAO,CAAC,IAAI,CAQd,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import fs from "fs-extra";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { getDriveFormat } from "../config.js";
|
|
4
|
+
export const build = async (name, drive, destination) => {
|
|
5
|
+
// no need to build, drive already exists
|
|
6
|
+
const src = drive.filename;
|
|
7
|
+
const format = getDriveFormat(src);
|
|
8
|
+
const filename = path.join(destination, `${name}.${format}`);
|
|
9
|
+
// just copy it
|
|
10
|
+
await fs.copyFile(src, filename);
|
|
11
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tar.d.ts","sourceRoot":"","sources":["../../src/builder/tar.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,eAAO,MAAM,KAAK,SACR,MAAM,SACL,cAAc,YACX,MAAM,eACH,MAAM,KACpB,OAAO,CAAC,IAAI,CA4Bd,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import fs from "fs-extra";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { genext2fs, mksquashfs } from "../exec/index.js";
|
|
4
|
+
export const build = async (name, drive, sdkImage, destination) => {
|
|
5
|
+
const tar = `${name}.tar`;
|
|
6
|
+
const filename = `${name}.${drive.format}`;
|
|
7
|
+
// copy input tar to destination directory (with drive name)
|
|
8
|
+
await fs.copy(drive.filename, path.join(destination, tar));
|
|
9
|
+
switch (drive.format) {
|
|
10
|
+
case "ext2": {
|
|
11
|
+
await genext2fs.fromTar({
|
|
12
|
+
extraSize: drive.extraSize,
|
|
13
|
+
input: tar,
|
|
14
|
+
output: filename,
|
|
15
|
+
cwd: destination,
|
|
16
|
+
image: sdkImage,
|
|
17
|
+
});
|
|
18
|
+
break;
|
|
19
|
+
}
|
|
20
|
+
case "sqfs": {
|
|
21
|
+
await mksquashfs.fromTar({
|
|
22
|
+
input: path.join(destination, tar),
|
|
23
|
+
output: filename,
|
|
24
|
+
cwd: destination,
|
|
25
|
+
image: sdkImage,
|
|
26
|
+
});
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
};
|
package/dist/commands/build.d.ts
CHANGED
|
@@ -1,24 +1,12 @@
|
|
|
1
1
|
import { BaseCommand } from "../baseCommand.js";
|
|
2
|
-
export default class
|
|
2
|
+
export default class Build extends BaseCommand<typeof Build> {
|
|
3
3
|
static summary: string;
|
|
4
4
|
static description: string;
|
|
5
5
|
static examples: string[];
|
|
6
|
-
static args: {};
|
|
7
6
|
static flags: {
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
config: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
8
|
+
"drives-only": import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
10
9
|
};
|
|
11
|
-
/**
|
|
12
|
-
* Build DApp image (linux/riscv64). Returns image id.
|
|
13
|
-
* @param directory path of context containing Dockerfile
|
|
14
|
-
*/
|
|
15
|
-
private buildImage;
|
|
16
|
-
private getImageInfo;
|
|
17
|
-
private createTarball;
|
|
18
|
-
private sdkRun;
|
|
19
|
-
private static createRootfsTarCommand;
|
|
20
|
-
private static createExt2Command;
|
|
21
|
-
private static createMachineSnapshotCommand;
|
|
22
10
|
run(): Promise<void>;
|
|
23
11
|
}
|
|
24
12
|
//# sourceMappingURL=build.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAoChD,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW,CAAC,OAAO,KAAK,CAAC;IACxD,MAAM,CAAC,OAAO,SAAwB;IAEtC,MAAM,CAAC,WAAW,SAC+E;IAEjG,MAAM,CAAC,QAAQ,WAA2C;IAE1D,MAAM,CAAC,KAAK;;;MAUV;IAEW,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2CpC"}
|