@salesforce/core
Version:
Core libraries to interact with SFDX projects, orgs, and APIs.
62 lines • 2.4 kB
JavaScript
/*
* Copyright (c) 2020, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.retrieveKeychain = void 0;
const kit_1 = require("@salesforce/kit");
const logger_1 = require("../logger");
const messages_1 = require("../messages");
const keyChainImpl_1 = require("./keyChainImpl");
messages_1.Messages.importMessagesDirectory(__dirname);
const messages = messages_1.Messages.load('@salesforce/core', 'encryption', ['unsupportedOperatingSystemError']);
/**
* Gets the os level keychain impl.
*
* @param platform The os platform.
* @ignore
*/
const retrieveKeychain = async (platform) => {
const logger = await logger_1.Logger.child('keyChain');
logger.debug(`platform: ${platform}`);
const useGenericUnixKeychainVar = kit_1.env.getBoolean('SFDX_USE_GENERIC_UNIX_KEYCHAIN');
const shouldUseGenericUnixKeychain = useGenericUnixKeychainVar && useGenericUnixKeychainVar;
if (platform.startsWith('win')) {
return keyChainImpl_1.keyChainImpl.generic_windows;
}
else if (platform.includes('darwin')) {
// OSX can use the generic keychain. This is useful when running under an
// automation user.
if (shouldUseGenericUnixKeychain) {
return keyChainImpl_1.keyChainImpl.generic_unix;
}
else {
return keyChainImpl_1.keyChainImpl.darwin;
}
}
else if (platform.includes('linux')) {
// Use the generic keychain if specified
if (shouldUseGenericUnixKeychain) {
return keyChainImpl_1.keyChainImpl.generic_unix;
}
else {
// otherwise try and use the builtin keychain
try {
await keyChainImpl_1.keyChainImpl.linux.validateProgram();
return keyChainImpl_1.keyChainImpl.linux;
}
catch (e) {
// If the builtin keychain is not available use generic
return keyChainImpl_1.keyChainImpl.generic_unix;
}
}
}
else {
throw messages.createError('unsupportedOperatingSystemError', [platform]);
}
};
exports.retrieveKeychain = retrieveKeychain;
//# sourceMappingURL=keyChain.js.map
;