eae5d8c807
These conflicts will be resolved in the following commits. We do it this way so that PR review is possible.
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import * as fs from 'fs';
|
|
import * as nls from 'vscode-nls';
|
|
import { IPCClient } from './ipc/ipcClient';
|
|
|
|
const localize = nls.loadMessageBundle();
|
|
|
|
function fatal(err: any): void {
|
|
console.error(localize('missOrInvalid', "Missing or invalid credentials."));
|
|
console.error(err);
|
|
process.exit(1);
|
|
}
|
|
|
|
function main(argv: string[]): void {
|
|
if (argv.length !== 5) {
|
|
return fatal('Wrong number of arguments');
|
|
}
|
|
|
|
if (!process.env['VSCODE_GIT_ASKPASS_PIPE']) {
|
|
return fatal('Missing pipe');
|
|
}
|
|
|
|
if (process.env['VSCODE_GIT_COMMAND'] === 'fetch' && !!process.env['VSCODE_GIT_FETCH_SILENT']) {
|
|
return fatal('Skip silent fetch commands');
|
|
}
|
|
|
|
const output = process.env['VSCODE_GIT_ASKPASS_PIPE'] as string;
|
|
const request = argv[2];
|
|
const host = argv[4].replace(/^["']+|["']+$/g, '');
|
|
const ipcClient = new IPCClient('askpass');
|
|
|
|
ipcClient.call({ request, host }).then(res => {
|
|
fs.writeFileSync(output, res + '\n');
|
|
setTimeout(() => process.exit(0), 0);
|
|
}).catch(err => fatal(err));
|
|
}
|
|
|
|
main(process.argv);
|