Skip to content

Commit 0873c64

Browse files
committed
x
1 parent 95399a3 commit 0873c64

File tree

6 files changed

+503
-67
lines changed

6 files changed

+503
-67
lines changed

cli/remote_driver.ts

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { basename, dirname, normalize, resolve } from "path";
44
import { ClientReadableStream } from "@grpc/grpc-js";
55
import chalk from "chalk";
66
import { glob } from "glob";
7+
import ora, { Ora } from "ora";
78

89
import { exec } from "../base/node/exec";
910
import { prettifyTime } from "../base/node/time";
@@ -110,16 +111,39 @@ export class RemoteDriver {
110111
return req;
111112
}
112113

113-
private resolveBuild(
114+
private async resolveBuild(
114115
stream: ClientReadableStream<compilerApi.BuildResponseEvent>,
115116
): Promise<compilerApi.BuildResponse> {
117+
let spinner: Ora | undefined;
118+
116119
return new Promise<compilerApi.BuildResponse>((_resolve) => {
117120
stream.on("data", async (e: compilerApi.BuildResponseEvent) => {
118121
if (e.hasMessage()) {
119122
const message = e.getMessage();
120123
if (message.length) {
121124
console.log(message);
122125
}
126+
return;
127+
}
128+
if (e.hasStage()) {
129+
const stage = e.getStage();
130+
switch (stage) {
131+
case compilerApi.BuildStage.ACQUIRE_START: {
132+
spinner = ora(`Acquiring resources`).start();
133+
break;
134+
}
135+
case compilerApi.BuildStage.PYTHON_WHEEL_START: {
136+
spinner = ora(`Building python wheel`).start();
137+
setTimeout(() => {
138+
spinner.text = "Xdd";
139+
}, 2000);
140+
break;
141+
}
142+
case compilerApi.BuildStage.PYTHON_WHEEL_END: {
143+
spinner?.succeed();
144+
break;
145+
}
146+
}
123147
}
124148
if (e.hasResponse()) {
125149
const res = e.getResponse()!;

compiler/compiler.proto

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,25 +25,23 @@ enum BuildStatus {
2525
ERROR = 1;
2626
}
2727

28-
enum BuildStage {
29-
START = 0;
30-
END = 1;
31-
ACQUIRE_START = 2;
32-
ACQUIRE_END = 3;
33-
PYTHON_WHEEL_START = 4;
34-
PYTHON_WHEEL_END = 5;
35-
}
36-
3728
message BuildResponse {
3829
repeated File files = 1;
3930
BuildStatus status = 2;
4031
optional string message = 3;
4132
}
4233

34+
message BuildStartEvent {
35+
}
36+
37+
message BuildEndEvent {
38+
}
39+
4340
message BuildResponseEvent {
4441
oneof kind {
4542
string message = 1;
4643
BuildResponse response = 2;
47-
BuildStage stage = 3;
44+
BuildStartEvent start = 3;
45+
BuildEndEvent end = 4;
4846
}
4947
}

compiler/proto/compiler_pb.d.ts

Lines changed: 47 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,40 @@ export namespace BuildResponse {
107107
}
108108
}
109109

110+
export class BuildStartEvent extends jspb.Message {
111+
112+
serializeBinary(): Uint8Array;
113+
toObject(includeInstance?: boolean): BuildStartEvent.AsObject;
114+
static toObject(includeInstance: boolean, msg: BuildStartEvent): BuildStartEvent.AsObject;
115+
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
116+
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
117+
static serializeBinaryToWriter(message: BuildStartEvent, writer: jspb.BinaryWriter): void;
118+
static deserializeBinary(bytes: Uint8Array): BuildStartEvent;
119+
static deserializeBinaryFromReader(message: BuildStartEvent, reader: jspb.BinaryReader): BuildStartEvent;
120+
}
121+
122+
export namespace BuildStartEvent {
123+
export type AsObject = {
124+
}
125+
}
126+
127+
export class BuildEndEvent extends jspb.Message {
128+
129+
serializeBinary(): Uint8Array;
130+
toObject(includeInstance?: boolean): BuildEndEvent.AsObject;
131+
static toObject(includeInstance: boolean, msg: BuildEndEvent): BuildEndEvent.AsObject;
132+
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
133+
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
134+
static serializeBinaryToWriter(message: BuildEndEvent, writer: jspb.BinaryWriter): void;
135+
static deserializeBinary(bytes: Uint8Array): BuildEndEvent;
136+
static deserializeBinaryFromReader(message: BuildEndEvent, reader: jspb.BinaryReader): BuildEndEvent;
137+
}
138+
139+
export namespace BuildEndEvent {
140+
export type AsObject = {
141+
}
142+
}
143+
110144
export class BuildResponseEvent extends jspb.Message {
111145

112146
hasMessage(): boolean;
@@ -119,10 +153,15 @@ export class BuildResponseEvent extends jspb.Message {
119153
getResponse(): BuildResponse | undefined;
120154
setResponse(value?: BuildResponse): BuildResponseEvent;
121155

122-
hasStage(): boolean;
123-
clearStage(): void;
124-
getStage(): BuildStage;
125-
setStage(value: BuildStage): BuildResponseEvent;
156+
hasStart(): boolean;
157+
clearStart(): void;
158+
getStart(): BuildStartEvent | undefined;
159+
setStart(value?: BuildStartEvent): BuildResponseEvent;
160+
161+
hasEnd(): boolean;
162+
clearEnd(): void;
163+
getEnd(): BuildEndEvent | undefined;
164+
setEnd(value?: BuildEndEvent): BuildResponseEvent;
126165

127166
getKindCase(): BuildResponseEvent.KindCase;
128167

@@ -140,14 +179,16 @@ export namespace BuildResponseEvent {
140179
export type AsObject = {
141180
message: string,
142181
response?: BuildResponse.AsObject,
143-
stage: BuildStage,
182+
start?: BuildStartEvent.AsObject,
183+
end?: BuildEndEvent.AsObject,
144184
}
145185

146186
export enum KindCase {
147187
KIND_NOT_SET = 0,
148188
MESSAGE = 1,
149189
RESPONSE = 2,
150-
STAGE = 3,
190+
START = 3,
191+
END = 4,
151192
}
152193

153194
}
@@ -156,12 +197,3 @@ export enum BuildStatus {
156197
OK = 0,
157198
ERROR = 1,
158199
}
159-
160-
export enum BuildStage {
161-
START = 0,
162-
END = 1,
163-
ACQUIRE_START = 2,
164-
ACQUIRE_END = 3,
165-
PYTHON_WHEEL_START = 4,
166-
PYTHON_WHEEL_END = 5,
167-
}

0 commit comments

Comments
 (0)