Merged 1.0.10_branch into master

This commit is contained in:
2019-10-15 14:41:34 -05:00
5 changed files with 60 additions and 47 deletions

View File

@@ -1,5 +1,8 @@
# Changelog # Changelog
## 1.0.10 (Windows only)
* Fix VC runtime detection (detect additional GUID's)
## 1.0.8 ## 1.0.8
* \#8: Add tooltips to settings * \#8: Add tooltips to settings
* \#36: Add ability to select Linux distribution type if OS is unsupported * \#36: Add ability to select Linux distribution type if OS is unsupported

View File

@@ -12,7 +12,7 @@ Repertory allows you to mount Sia and/or SiaPrime blockchain storage solutions v
* **Repertory UI v1.0.8 Linux 64-bit** [<Primary\>](https://pixeldrain.com/u/a1H78Dc_) [<Alternate\>](https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.8_linux_x86_64.AppImage) * **Repertory UI v1.0.8 Linux 64-bit** [<Primary\>](https://pixeldrain.com/u/a1H78Dc_) [<Alternate\>](https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.8_linux_x86_64.AppImage)
* NOTE: Linux distributions require `fuse` and `libfuse` to be installed. * NOTE: Linux distributions require `fuse` and `libfuse` to be installed.
* **Repertory UI v1.0.8 OS X 64-bit** [<Primary\>](https://pixeldrain.com/u/6NjT6uEl) [<Alternate\>](https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.8_mac.dmg) * **Repertory UI v1.0.8 OS X 64-bit** [<Primary\>](https://pixeldrain.com/u/6NjT6uEl) [<Alternate\>](https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.8_mac.dmg)
* **Repertory UI v1.0.8 Windows 64-bit** [<Primary\>](https://pixeldrain.com/u/u_pP3IAk) [<Alternate\>](https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.8_win.exe) * **Repertory UI v1.0.10 Windows 64-bit** [<Primary\>](https://pixeldrain.com/u/YCzKB0a9) [<Alternate\>](https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.10_win.exe)
## Supported Platforms ## Supported Platforms
* OS X 64-bit * OS X 64-bit

View File

@@ -1,6 +1,6 @@
{ {
"name": "repertory-ui", "name": "repertory-ui",
"version": "1.0.8", "version": "1.0.10",
"private": true, "private": true,
"author": "scott.e.graves@protonmail.com", "author": "scott.e.graves@protonmail.com",
"description": "GUI for Repertory - Repertory allows you to mount Sia and/or SiaPrime blockchain storage solutions via FUSE on Linux/OS X or via WinFSP on Windows.", "description": "GUI for Repertory - Repertory allows you to mount Sia and/or SiaPrime blockchain storage solutions via FUSE on Linux/OS X or via WinFSP on Windows.",

View File

@@ -151,12 +151,12 @@
} }
}, },
"win32": { "win32": {
"1.0.8": { "1.0.10": {
"sha256": "1dcf2ca95ee9ce1893166e7966e4aaa465735d00476d99414c57d18e7232212f", "sha256": "62a7c36fd8657feda57134ebacac4feab65ebd577668a608770cbdf05a669055",
"sig": "AzXf0WkuGx4lXoGPgxsj2LDCAHwotKnvZHBFZv1f2A77sNtJaDQAgS3b4Hjg0AiWCRL9HzjJNprBv5lEUwc7AeRLXuj+4AI6Z7PeRaVs2NBgEHlIqldPwjime8bE2NBrkKfdDDdiAzhm3AqxgRzwhZ4sxkb3vNDdKIj4WnH79LsVCEcBgtuWalNvt3Q0i5ppBvu6+Iy/gZuGa7z+Jv2WU+Ijm7WjkmmmTdpcvP1UQTBL2UkriYOxVMIfrjHM0b2ch6RGBKUxS2h26h0xmJ7SzFoZ6lHcHDIxi8fsi7DIO/QDpottJPVgZLRuufSTyXLCbehLRI3dd1IWhQns0OTU11MBAUTRczJTaZ8nrjMesKdwbWqDDGMWOHyl39EuGIaGm3Mbi4iQWI3gz4RmX9kIWf0OSaT73okPvfjWA2Onn8IOs57TDw5fIyKKFjMkxqAPy0O+WonjJ5bd4Q/8HUpVx9M9NoClbztMQUhom2hVPkPiD3jQ8I9YcrmD9phZYkMf5As1G6RBsITsbpRA0bu9426y6K+nNJLPAM0TrW33oOziYV2z5HD1/Z+TsUMcusAPTbatjPLyLZ9kWIUqybPga8iPZW9iqszei2ywKl3EgAP/rZx2fn3qko9PvdpsoV6VBp9FxT2mguoRnkIo3lPGYXssBlfVBz0treGyjDoqcOrtciVLJbal54FTPU5o+Acuffi0Ft2F4qW7d3VglhEeA2i4zzPH2l8R0CuStei8ePMhOpebtByTPrclkvlbcOCg5adF+3/zTH9H261+P/IyrPct1ucvVpa6FlpcKfErWttRmxc9QhqiepyPUonLkHgB4Ur/ft6PzlE/+wD6arA7avSKdZqzeSksFSdnX/41fD8gL5CHfsCdbeqPvPd97CliiMCeGjVngQ5qFbC1+5DHuDopvs0yWcmDAO+nFrcQt3K01VjDYT+5plb263Ba3HKHqkT9N2gH8yWK/DdfT4Y8WAABomcgPeRSg6lAtNFv5RtWbSq9Q4dLFuhGM55EtXPG15zYAZqePCcyWYieP0wNuszcSsVNDScU8gqilwtn1oKO0ISZSYZUbdzI3fDc6SbaJNLwYdT/AlELZy0fAKILmJJN8MUXvcC7we6zyPOqwEf1ESLOb84Zw3+gPtH+Ao9dWHKdHOlyNyRzPvTYrcqSn2Uf3iHOLeoazqEEJ5Bh7jbDgVBkB4XEwijb+BvFV3cBcLdSg1Id3zZF02jkpaN4SMbEmqPbUv393CKRNs47p6ffFKKS5oUEpF6GpZq/wtjmKkdMSIzGVurbHPIaZI8JfLrEu/GAxAMGM7G3O5AiKOf0AH0wexhP5Vh6iE3MLNMA7n8SEQL5i/YUIL6b0tDL/wc=", "sig": "A3t7jyMck0qrWLNAhFUxgNns/bEphbx3DzXcTnAc0g0z1l7JWBCk4MxNyovJCCGc5NmmAgK+U8KKbdGizqPaZrjggH6Sq4BjRSD/FGrX7c59G/rj1jD1y+A5aN3M77tz+2z+XVyUvtqRYN1Jh+JoBZOnHC4wywnOiu9Q942Ky4Ecn2wiNcyquHQailqR/rAVNVQ1qAWq5b54nySZs4ZuSF0uvgDYobWeYnMUSlU9p9u8ojPW0teqZKngNzexUynJQfZoBE0f4O5DUUDU4FDaWn3AcXdjnTLthPT2nJ8EXVCguod9MD9pjBfbr/UYUrSywG5bK01G3ZJLXs6dxb9xb2a9EoXPP91SDNZ3gAq+J+qKXUkN5kFCkC1Z+oyIClx08HQ0Pu24MCCSm4xYz1OAQygqCXCncmJEwvT+1qDPp8u8dobWO9lH+C4rRTUP/NHs78vCIQ0kR1r2k1q/1Xi1RalJ2N5V1nwPBRBH4iB/mQ5Z0CIYb/Wm8I5jexENWVEOWP1kTXCq9SGBDPuJYWIwrOz5UkgkZ0fQlOQaxI2ZWSTd5cUSQsljZoZ+T4pU2gMNR7T+GOjyc/hndx0w7D3gtzRy2/DVvMUmAnADCeIHfIivOtb9V1Uzu6Op84QKOv5rTe791QLplqcg620o6qIYr7lRA3tbSKrgR78XVGQA8odv79VtFh3PAGRkQ/nTkaucPBL9KmiB4KDctzLr49ky4d7xMOv68S72U69LBM886nA7vlQdEwIcW1TLkLj1n2DJADARu0Uub0M1O4PnQp/4iJic/dfWm0DIwvLltYNJrYT4G7m0KilzqcpPxhaUIkgDarcwWhisCAX9TvP9DhYQbjf0FDsp4KqhRvfn37QDI01DYRY80GSllabHf5sT0AxCgEGAPXC0BP+7OM8hjO/XXTExv4eXPlFoDI1+qLMRH+4GgnTCBks3Axe5rPhWzJZqqSLpWCNArQFhREwJqCyvdEtSyujM1bQ0nLawRlGbUJ9CJ/yQGGV92DiT3pyTaTNpLAATA9xKGuxiTMq1PGKRZTGPnGK5udvK11Vt7B8cmPpWQyixD98R989zkleuu5b/xDWXtRZcMm0ls0IZeX8/VTrhJEtYZsZ8k6UXJJ8UQJFRoQ2zlTCNGIt/9ZcslF9sfxJ7Bi1YeDJyeCykwR0RuTNunFsFKRrnDHoXxY9JihIOXNBJI9+iELqPdWwkNWtrelKciZN4edCxcg5UYF6kEGAJsrFUlYq2zfXwlxb4VQIHACTsiPsAuMGiyG3hydcFF2UGY8MKKxOeGnvyLInaJMfmQLY4iHoT2g8jBlfkgFvyHmSdM/KsJKxLxW4ve5x5QB8KX4gBVPZZW0GJxY/Tqz0=",
"urls": [ "urls": [
"https://pixeldrain.com/api/file/u_pP3IAk", "https://pixeldrain.com/api/file/YCzKB0a9",
"https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.8_win.exe" "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.0.10_win.exe"
] ]
} }
} }
@@ -214,7 +214,7 @@
"unavailable" "unavailable"
], ],
"win32": [ "win32": [
"1.0.8" "1.0.10"
] ]
} }
} }

View File

@@ -462,46 +462,56 @@ module.exports.getMissingDependencies = dependencies => {
}; };
const Registry = require('winreg'); const Registry = require('winreg');
for (const dep of dependencies) { const checkRegistry = (dep, index) => {
let hive = null; if (index >= dep.registry.length) {
const hiveName = dep.registry[0].split('\\')[0]; missing.push(dep);
switch (hiveName) { resolveIfComplete();
case 'HKEY_CLASSES_ROOT': } else {
hive = Registry.HKCR; let hive = null;
break; const hiveName = dep.registry[index].split('\\')[0];
case 'HKEY_CURRENT_CONFIG': switch (hiveName) {
hive = Registry.HKCC; case 'HKEY_CLASSES_ROOT':
break; hive = Registry.HKCR;
case 'HKEY_CURRENT_USER': break;
hive = Registry.HKCU; case 'HKEY_CURRENT_CONFIG':
break; hive = Registry.HKCC;
case 'HKEY_LOCAL_MACHINE': break;
hive = Registry.HKLM; case 'HKEY_CURRENT_USER':
break; hive = Registry.HKCU;
case 'HKEY_USERS': break;
hive = Registry.HKU; case 'HKEY_LOCAL_MACHINE':
break; hive = Registry.HKLM;
default: break;
throw Error('Invalid registry hive: ' + hiveName); case 'HKEY_USERS':
} hive = Registry.HKU;
break;
const key = dep.registry[0].substr(hiveName.length); default:
const regKey = new Registry({ throw Error('Invalid registry hive: ' + hiveName);
hive: hive,
key: key
});
regKey.valueExists('DisplayName', (err, exists) => {
if (err || !exists) {
regKey.valueExists('ProductName', (err, exists) => {
if (err || !exists) {
missing.push(dep);
}
resolveIfComplete();
});
} else {
resolveIfComplete();
} }
});
const key = dep.registry[index].substr(hiveName.length);
const regKey = new Registry({
hive: hive,
key: key
});
regKey.valueExists('DisplayName', (err, exists) => {
if (err || !exists) {
regKey.valueExists('ProductName', (err, exists) => {
if (err || !exists) {
checkRegistry(dep, ++index);
} else {
resolveIfComplete();
}
});
} else {
resolveIfComplete();
}
});
}
};
for (const dependency of dependencies) {
checkRegistry(dependency,0);
} }
} else { } else {
for (const dep of dependencies) { for (const dep of dependencies) {