mirror of
https://github.com/finos/SymphonyElectron.git
synced 2025-02-25 18:55:29 -06:00
Redo branch & pr for registry (#36)
* Redo branch & pr for registry * fix lint ignore file
This commit is contained in:
58
js/utils/getRegistry.js
Normal file
58
js/utils/getRegistry.js
Normal file
@@ -0,0 +1,58 @@
|
||||
'use strict';
|
||||
|
||||
const symphonyRegistry = '\\Software\\Symphony\\Symphony\\';
|
||||
const { isMac } = require('./misc.js');
|
||||
|
||||
var Registry = require('winreg');
|
||||
var symphonyRegistryHKCU = new Registry({
|
||||
hive: Registry.HKCU,
|
||||
key: symphonyRegistry
|
||||
});
|
||||
|
||||
var symphonyRegistryHKLM = new Registry({
|
||||
key: symphonyRegistry
|
||||
});
|
||||
|
||||
var symphonyRegistryHKLM6432 = new Registry({
|
||||
key: symphonyRegistry.replace('\\Software','\\Software\\WOW6432Node')
|
||||
});
|
||||
|
||||
/**
|
||||
* Reads Windows Registry key. This Registry holds the Symphony registry keys
|
||||
* that are intended to be used as global (or default) value for all users
|
||||
* running this app.
|
||||
*/
|
||||
var getRegistry = function (name) {
|
||||
var promise = new Promise(function(resolve, reject) {
|
||||
if (isMac){
|
||||
reject('Mac OS. Using default url from config.json.');
|
||||
} else{
|
||||
//Try to get registry on HKEY_CURRENT_USER
|
||||
symphonyRegistryHKCU.get( name, function( err1, reg1 ) {
|
||||
if ( !err1 && reg1!==null && reg1.value) {
|
||||
resolve(reg1.value);
|
||||
} else{
|
||||
//Try to get registry on HKEY_LOCAL_MACHINE
|
||||
symphonyRegistryHKLM.get( name, function( err2, reg2 ) {
|
||||
if ( !err2 && reg2!==null && reg2.value) {
|
||||
resolve(reg2.value);
|
||||
} else{
|
||||
//Try to get registry on HKEY_LOCAL_MACHINE in case 32bit app installed on 64bit system.
|
||||
//winreg does not merge keys as normally windows does.
|
||||
symphonyRegistryHKLM6432.get( name, function( err3, reg3 ) {
|
||||
if ( !err3 && reg3!==null && reg3.value) {
|
||||
resolve(reg3.value);
|
||||
} else{
|
||||
reject('Cannot find PodUrl Registry. Using default url.');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
return promise;
|
||||
}
|
||||
|
||||
module.exports = getRegistry
|
||||
Reference in New Issue
Block a user