From 6f8f83d178d26a39c20bdd0def84a9b5c731698f Mon Sep 17 00:00:00 2001 From: Eugene Pankov Date: Mon, 10 Jul 2017 18:11:47 +0200 Subject: [PATCH] detect 32-bit Cygwin setups (fixes #106) --- .../terminalSettingsTab.component.ts | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/terminus-terminal/src/components/terminalSettingsTab.component.ts b/terminus-terminal/src/components/terminalSettingsTab.component.ts index 8dcfb6d7..94a3d231 100644 --- a/terminus-terminal/src/components/terminalSettingsTab.component.ts +++ b/terminus-terminal/src/components/terminalSettingsTab.component.ts @@ -68,11 +68,10 @@ export class TerminalSettingsTabComponent { // Detect Cygwin let cygwinPath = await new Promise(resolve => { - let reg = new Registry({ hive: Registry.HKLM, key: '\\Software\\Cygwin\\setup' }) + let reg = new Registry({ hive: Registry.HKLM, key: '\\Software\\Cygwin\\setup', arch: 'x64' }) reg.get('rootdir', (err, item) => { if (err) { - resolve(null) - return + return resolve(null) } resolve(item.value) }) @@ -81,6 +80,20 @@ export class TerminalSettingsTabComponent { this.shells.push({ name: 'Cygwin', command: path.join(cygwinPath, 'bin', 'bash.exe') }) } + // Detect 32-bit Cygwin + let cygwin32Path = await new Promise(resolve => { + let reg = new Registry({ hive: Registry.HKLM, key: '\\Software\\Cygwin\\setup', arch: 'x86' }) + reg.get('rootdir', (err, item) => { + if (err) { + return resolve(null) + } + resolve(item.value) + }) + }) + if (cygwin32Path) { + this.shells.push({ name: 'Cygwin (32 bit)', command: path.join(cygwin32Path, 'bin', 'bash.exe') }) + } + // Detect Git-Bash let gitBashPath = await new Promise(resolve => { let reg = new Registry({ hive: Registry.HKLM, key: '\\Software\\GitForWindows' })