Skip to content

Propagate full env to browser #756

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jun 11, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions packages/ide/src/fill/os.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ class OS {
default: this._platform = "linux"; break;
}
process.platform = this._platform;
process.env = {};
data.env.forEach((v, k) => {
process.env[k] = v;
});
}

public release(): string {
Expand Down
3 changes: 3 additions & 0 deletions packages/protocol/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,8 @@
"rimraf": "^2.6.3",
"text-encoding": "^0.7.0",
"ts-protoc-gen": "^0.8.0"
},
"scripts": {
"gen": "./scripts/generate_proto.sh"
}
}
4 changes: 3 additions & 1 deletion packages/protocol/scripts/generate_proto.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#!/bin/bash

protoc --plugin="protoc-gen-ts=./node_modules/.bin/protoc-gen-ts" --js_out="import_style=commonjs,binary:./src/proto" --ts_out="./src/proto" ./src/proto/*.proto --proto_path="./src/proto"
cd "$(dirname "$0")/.."

protoc --plugin="protoc-gen-ts=./node_modules/.bin/protoc-gen-ts" --js_out="import_style=commonjs,binary:./src/proto" --ts_out="./src/proto" ./src/proto/*.proto --proto_path="./src/proto"
1 change: 1 addition & 0 deletions packages/protocol/src/browser/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,7 @@ export class Client {
builtInExtensionsDirectory: init.getBuiltinExtensionsDir(),
extraExtensionDirectories: init.getExtraExtensionDirectoriesList(),
extraBuiltinExtensionDirectories: init.getExtraBuiltinExtensionDirectoriesList(),
env: init.getEnvMap(),
};
this.initDataEmitter.emit(this._initData);
break;
Expand Down
3 changes: 3 additions & 0 deletions packages/protocol/src/common/connection.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import * as jspb from "google-protobuf";

export interface SendableConnection {
send(data: Buffer | Uint8Array): void;
}
Expand Down Expand Up @@ -27,6 +29,7 @@ export interface InitData {
readonly builtInExtensionsDirectory: string;
readonly extraExtensionDirectories: string[];
readonly extraBuiltinExtensionDirectories: string[];
readonly env: jspb.Map<string, string>;
}

export interface SharedProcessData {
Expand Down
5 changes: 5 additions & 0 deletions packages/protocol/src/node/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,11 @@ export class Server {
initMsg.setShell(os.userInfo().shell || global.process.env.SHELL || "");
initMsg.setExtraExtensionDirectoriesList(this.options.extraExtensionDirectories || []);
initMsg.setExtraBuiltinExtensionDirectoriesList(this.options.extraBuiltinExtensionDirectories || []);

for (let key in process.env) {
initMsg.getEnvMap().set(key, process.env[key] as string);
}

const srvMsg = new ServerMessage();
srvMsg.setInit(initMsg);
connection.send(srvMsg.serializeBinary());
Expand Down
2 changes: 2 additions & 0 deletions packages/protocol/src/proto/client.proto
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,6 @@ message WorkingInit {
string extensions_directory = 8;
repeated string extra_extension_directories = 9;
repeated string extra_builtin_extension_directories = 10;

map<string, string> env = 11;
}
3 changes: 3 additions & 0 deletions packages/protocol/src/proto/client_pb.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,8 @@ export class WorkingInit extends jspb.Message {
setExtraBuiltinExtensionDirectoriesList(value: Array<string>): void;
addExtraBuiltinExtensionDirectories(value: string, index?: number): string;

getEnvMap(): jspb.Map<string, string>;
clearEnvMap(): void;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): WorkingInit.AsObject;
static toObject(includeInstance: boolean, msg: WorkingInit): WorkingInit.AsObject;
Expand All @@ -167,6 +169,7 @@ export namespace WorkingInit {
extensionsDirectory: string,
extraExtensionDirectoriesList: Array<string>,
extraBuiltinExtensionDirectoriesList: Array<string>,
envMap: Array<[string, string]>,
}

export enum OperatingSystem {
Expand Down
40 changes: 36 additions & 4 deletions packages/protocol/src/proto/client_pb.js
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ proto.ClientMessage.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.ClientMessage.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
method: (f = msg.getMethod()) && node_pb.Method.toObject(includeInstance, f),
ping: (f = msg.getPing()) && node_pb.Ping.toObject(includeInstance, f)
};
Expand Down Expand Up @@ -360,7 +360,7 @@ proto.ServerMessage.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.ServerMessage.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
fail: (f = msg.getFail()) && node_pb.Method.Fail.toObject(includeInstance, f),
success: (f = msg.getSuccess()) && node_pb.Method.Success.toObject(includeInstance, f),
event: (f = msg.getEvent()) && node_pb.Event.toObject(includeInstance, f),
Expand Down Expand Up @@ -794,7 +794,7 @@ proto.WorkingInit.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.WorkingInit.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
homeDirectory: jspb.Message.getFieldWithDefault(msg, 1, ""),
tmpDirectory: jspb.Message.getFieldWithDefault(msg, 2, ""),
dataDirectory: jspb.Message.getFieldWithDefault(msg, 3, ""),
Expand All @@ -804,7 +804,8 @@ proto.WorkingInit.toObject = function(includeInstance, msg) {
builtinExtensionsDir: jspb.Message.getFieldWithDefault(msg, 7, ""),
extensionsDirectory: jspb.Message.getFieldWithDefault(msg, 8, ""),
extraExtensionDirectoriesList: jspb.Message.getRepeatedField(msg, 9),
extraBuiltinExtensionDirectoriesList: jspb.Message.getRepeatedField(msg, 10)
extraBuiltinExtensionDirectoriesList: jspb.Message.getRepeatedField(msg, 10),
envMap: (f = msg.getEnvMap()) ? f.toObject(includeInstance, undefined) : []
};

if (includeInstance) {
Expand Down Expand Up @@ -881,6 +882,12 @@ proto.WorkingInit.deserializeBinaryFromReader = function(msg, reader) {
var value = /** @type {string} */ (reader.readString());
msg.addExtraBuiltinExtensionDirectories(value);
break;
case 11:
var value = msg.getEnvMap();
reader.readMessage(value, function(message, reader) {
jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "");
});
break;
default:
reader.skipField();
break;
Expand Down Expand Up @@ -980,6 +987,10 @@ proto.WorkingInit.serializeBinaryToWriter = function(message, writer) {
f
);
}
f = message.getEnvMap(true);
if (f && f.getLength() > 0) {
f.serializeBinary(11, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
}
};


Expand Down Expand Up @@ -1176,4 +1187,25 @@ proto.WorkingInit.prototype.clearExtraBuiltinExtensionDirectoriesList = function
};


/**
* map<string, string> env = 11;
* @param {boolean=} opt_noLazyCreate Do not create the map if
* empty, instead returning `undefined`
* @return {!jspb.Map<string,string>}
*/
proto.WorkingInit.prototype.getEnvMap = function(opt_noLazyCreate) {
return /** @type {!jspb.Map<string,string>} */ (
jspb.Message.getMapField(this, 11, opt_noLazyCreate,
null));
};


/**
* Clears values from the map. The map will be non-null.
*/
proto.WorkingInit.prototype.clearEnvMap = function() {
this.getEnvMap().clear();
};


goog.object.extend(exports, proto);
46 changes: 23 additions & 23 deletions packages/protocol/src/proto/node_pb.js
Original file line number Diff line number Diff line change
Expand Up @@ -583,7 +583,7 @@ proto.Argument.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Argument.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
error: (f = msg.getError()) && proto.Argument.ErrorValue.toObject(includeInstance, f),
buffer: (f = msg.getBuffer()) && proto.Argument.BufferValue.toObject(includeInstance, f),
object: (f = msg.getObject()) && proto.Argument.ObjectValue.toObject(includeInstance, f),
Expand Down Expand Up @@ -843,7 +843,7 @@ proto.Argument.ErrorValue.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Argument.ErrorValue.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
message: jspb.Message.getFieldWithDefault(msg, 1, ""),
stack: jspb.Message.getFieldWithDefault(msg, 2, ""),
code: jspb.Message.getFieldWithDefault(msg, 3, "")
Expand Down Expand Up @@ -1022,7 +1022,7 @@ proto.Argument.BufferValue.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Argument.BufferValue.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
data: msg.getData_asB64()
};

Expand Down Expand Up @@ -1171,7 +1171,7 @@ proto.Argument.ObjectValue.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Argument.ObjectValue.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
dataMap: (f = msg.getDataMap()) ? f.toObject(includeInstance, proto.Argument.toObject) : []
};

Expand Down Expand Up @@ -1308,7 +1308,7 @@ proto.Argument.ArrayValue.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Argument.ArrayValue.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
dataList: jspb.Message.toObjectList(msg.getDataList(),
proto.Argument.toObject, includeInstance)
};
Expand Down Expand Up @@ -1455,7 +1455,7 @@ proto.Argument.ProxyValue.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Argument.ProxyValue.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
id: jspb.Message.getFieldWithDefault(msg, 1, 0)
};

Expand Down Expand Up @@ -1580,7 +1580,7 @@ proto.Argument.FunctionValue.prototype.toObject = function(opt_includeInstance)
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Argument.FunctionValue.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
id: jspb.Message.getFieldWithDefault(msg, 1, 0)
};

Expand Down Expand Up @@ -1705,7 +1705,7 @@ proto.Argument.NullValue.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Argument.NullValue.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {

};

Expand Down Expand Up @@ -1804,7 +1804,7 @@ proto.Argument.UndefinedValue.prototype.toObject = function(opt_includeInstance)
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Argument.UndefinedValue.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {

};

Expand Down Expand Up @@ -1903,7 +1903,7 @@ proto.Argument.DateValue.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Argument.DateValue.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
date: jspb.Message.getFieldWithDefault(msg, 1, "")
};

Expand Down Expand Up @@ -2449,7 +2449,7 @@ proto.Method.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Method.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
namedProxy: (f = msg.getNamedProxy()) && proto.Method.Named.toObject(includeInstance, f),
numberedProxy: (f = msg.getNumberedProxy()) && proto.Method.Numbered.toObject(includeInstance, f)
};
Expand Down Expand Up @@ -2582,7 +2582,7 @@ proto.Method.Named.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Method.Named.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
id: jspb.Message.getFieldWithDefault(msg, 1, 0),
module: jspb.Message.getFieldWithDefault(msg, 2, 0),
method: jspb.Message.getFieldWithDefault(msg, 3, ""),
Expand Down Expand Up @@ -2817,7 +2817,7 @@ proto.Method.Numbered.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Method.Numbered.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
id: jspb.Message.getFieldWithDefault(msg, 1, 0),
proxyId: jspb.Message.getFieldWithDefault(msg, 2, 0),
method: jspb.Message.getFieldWithDefault(msg, 3, ""),
Expand Down Expand Up @@ -3045,7 +3045,7 @@ proto.Method.Fail.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Method.Fail.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
id: jspb.Message.getFieldWithDefault(msg, 1, 0),
response: (f = msg.getResponse()) && proto.Argument.toObject(includeInstance, f)
};
Expand Down Expand Up @@ -3217,7 +3217,7 @@ proto.Method.Success.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Method.Success.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
id: jspb.Message.getFieldWithDefault(msg, 1, 0),
response: (f = msg.getResponse()) && proto.Argument.toObject(includeInstance, f)
};
Expand Down Expand Up @@ -3481,7 +3481,7 @@ proto.Callback.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Callback.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
namedCallback: (f = msg.getNamedCallback()) && proto.Callback.Named.toObject(includeInstance, f),
numberedCallback: (f = msg.getNumberedCallback()) && proto.Callback.Numbered.toObject(includeInstance, f)
};
Expand Down Expand Up @@ -3614,7 +3614,7 @@ proto.Callback.Named.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Callback.Named.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
module: jspb.Message.getFieldWithDefault(msg, 1, 0),
callbackId: jspb.Message.getFieldWithDefault(msg, 2, 0),
argsList: jspb.Message.toObjectList(msg.getArgsList(),
Expand Down Expand Up @@ -3822,7 +3822,7 @@ proto.Callback.Numbered.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Callback.Numbered.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
proxyId: jspb.Message.getFieldWithDefault(msg, 1, 0),
callbackId: jspb.Message.getFieldWithDefault(msg, 2, 0),
argsList: jspb.Message.toObjectList(msg.getArgsList(),
Expand Down Expand Up @@ -4115,7 +4115,7 @@ proto.Event.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Event.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
namedEvent: (f = msg.getNamedEvent()) && proto.Event.Named.toObject(includeInstance, f),
numberedEvent: (f = msg.getNumberedEvent()) && proto.Event.Numbered.toObject(includeInstance, f)
};
Expand Down Expand Up @@ -4248,7 +4248,7 @@ proto.Event.Named.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Event.Named.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
module: jspb.Message.getFieldWithDefault(msg, 1, 0),
event: jspb.Message.getFieldWithDefault(msg, 2, ""),
argsList: jspb.Message.toObjectList(msg.getArgsList(),
Expand Down Expand Up @@ -4456,7 +4456,7 @@ proto.Event.Numbered.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Event.Numbered.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
proxyId: jspb.Message.getFieldWithDefault(msg, 1, 0),
event: jspb.Message.getFieldWithDefault(msg, 2, ""),
argsList: jspb.Message.toObjectList(msg.getArgsList(),
Expand Down Expand Up @@ -4723,7 +4723,7 @@ proto.Ping.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Ping.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {

};

Expand Down Expand Up @@ -4822,7 +4822,7 @@ proto.Pong.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.Pong.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {

};

Expand Down
2 changes: 1 addition & 1 deletion packages/protocol/src/proto/vscode_pb.js
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ proto.SharedProcessActive.prototype.toObject = function(opt_includeInstance) {
* @suppress {unusedLocalVariables} f is only used for nested messages
*/
proto.SharedProcessActive.toObject = function(includeInstance, msg) {
var obj = {
var f, obj = {
socketPath: jspb.Message.getFieldWithDefault(msg, 1, ""),
logPath: jspb.Message.getFieldWithDefault(msg, 2, "")
};
Expand Down
Loading