Add log uploader command line util (#41318)

* Add log uploader command line option

Adds a new --upload-logs command line flag that allows users to upload log files from their current session to a secure endpoint

* Use TPromise

* Better argv description

* Fix var spell

* Use request service
This commit is contained in:
Matt Bierner
2018-01-10 22:23:37 -08:00
committed by GitHub
parent 5c8c83419e
commit 9a2d1d2017
7 changed files with 180 additions and 8 deletions

View File

@@ -28,7 +28,7 @@ export interface IRequestOptions {
password?: string;
headers?: any;
timeout?: number;
data?: any;
data?: string | Stream;
agent?: Agent;
followRedirects?: number;
strictSSL?: boolean;
@@ -63,6 +63,7 @@ export function request(options: IRequestOptions): TPromise<IRequestContext> {
: getNodeRequest(options);
return rawRequestPromise.then(rawRequest => {
return new TPromise<IRequestContext>((c, e) => {
const endpoint = parseUrl(options.url);
@@ -83,7 +84,6 @@ export function request(options: IRequestOptions): TPromise<IRequestContext> {
req = rawRequest(opts, (res: http.ClientResponse) => {
const followRedirects = isNumber(options.followRedirects) ? options.followRedirects : 3;
if (res.statusCode >= 300 && res.statusCode < 400 && followRedirects > 0 && res.headers['location']) {
request(assign({}, options, {
url: res.headers['location'],
@@ -107,7 +107,12 @@ export function request(options: IRequestOptions): TPromise<IRequestContext> {
}
if (options.data) {
req.write(options.data);
if (typeof options.data === 'string') {
req.write(options.data);
} else {
options.data.pipe(req);
return;
}
}
req.end();