Skip to content
This repository was archived by the owner on May 1, 2024. It is now read-only.

Commit d1b3461

Browse files
committed
Appends Erlang path when its task is selected, using GetErlangPath with architecture argument
1 parent 8af076e commit d1b3461

File tree

1 file changed

+29
-13
lines changed

1 file changed

+29
-13
lines changed

ElixirWeb.iss

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ Source: "compiler:Setup.e32"; DestDir: "{tmp}"; Flags: deleteafterinstall
6363
Source: "compiler:SetupLdr.e32"; DestDir: "{tmp}"; Flags: deleteafterinstall
6464

6565
[Run]
66-
Filename: "{tmp}\{#OTP_32_EXE}"; Flags: hidewizard; StatusMsg: "Installing {#OTP_32_NAME}..."; Tasks: erlang\32
67-
Filename: "{tmp}\{#OTP_64_EXE}"; Flags: hidewizard; StatusMsg: "Installing {#OTP_64_NAME}..."; Tasks: erlang\64
66+
Filename: "{tmp}\{#OTP_32_EXE}"; Flags: hidewizard; StatusMsg: "Installing {#OTP_32_NAME}..."; Tasks: erlang\32; AfterInstall: AppendErlangPathIfTaskSelected(False)
67+
Filename: "{tmp}\{#OTP_64_EXE}"; Flags: hidewizard; StatusMsg: "Installing {#OTP_64_NAME}..."; Tasks: erlang\64; AfterInstall: AppendErlangPathIfTaskSelected(True)
6868
Filename: "{tmp}\7za.exe"; Parameters: "x -oelixir Precompiled.zip"; WorkingDir: "{tmp}"; StatusMsg: "Extracting Precompiled.zip archive..."
6969
Filename: "{tmp}\ISCC.exe"; Parameters: "/dElixirVersion={code:ConstGetSelectedReleaseVersion} /dSkipWelcome /dNoCompression Elixir.iss"; WorkingDir: "{tmp}"; StatusMsg: "Compiling Elixir installer..."
7070
Filename: "{tmp}\Output\elixir-v{code:ConstGetSelectedReleaseVersion}-setup.exe"; Flags: nowait; StatusMsg: "Starting Elixir installer..."
@@ -210,29 +210,29 @@ begin
210210
Result := GetVersion(GetSelectedRelease());
211211
end;
212212
213-
function GetErlangPath: String;
213+
function GetErlangPath(Of64Bit: Boolean): String;
214214
var
215215
Versions: TArrayOfString;
216216
Path: String;
217217
begin
218218
Result := '';
219219
220-
if RegGetSubkeyNames(HKEY_LOCAL_MACHINE, 'SOFTWARE\Ericsson\Erlang', Versions) then begin
221-
if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Ericsson\Erlang\' + '{#OTP_ERTS_VERSION}', '', Path) then begin
222-
Result := Path;
223-
end else if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Ericsson\Erlang\' + Versions[GetArrayLength(Versions) - 1], '', Path) then begin
224-
Result := Path;
225-
end;
226-
end;
227-
228-
if IsWin64 then begin
220+
if Of64Bit then begin
229221
if RegGetSubkeyNames(HKEY_LOCAL_MACHINE, 'SOFTWARE\Wow6432Node\Ericsson\Erlang', Versions) then begin
230222
if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Wow6432Node\Ericsson\Erlang\' + '{#OTP_ERTS_VERSION}', '', Path) then begin
231223
Result := Path;
232224
end else if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Wow6432Node\Ericsson\Erlang\' + Versions[GetArrayLength(Versions) - 1], '', Path) then begin
233225
Result := Path;
234226
end;
235227
end;
228+
end else begin
229+
if RegGetSubkeyNames(HKEY_LOCAL_MACHINE, 'SOFTWARE\Ericsson\Erlang', Versions) then begin
230+
if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Ericsson\Erlang\' + '{#OTP_ERTS_VERSION}', '', Path) then begin
231+
Result := Path;
232+
end else if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Ericsson\Erlang\' + Versions[GetArrayLength(Versions) - 1], '', Path) then begin
233+
Result := Path;
234+
end;
235+
end;
236236
end;
237237
end;
238238
@@ -243,14 +243,30 @@ end;
243243
244244
function CheckToInstallErlang: Boolean;
245245
begin
246-
Result := (GetErlangPath = '');
246+
Result := (GetErlangPath(False) = '') or (GetErlangPath(True) = '');
247247
end;
248248
249249
function CheckToAddErlangPath: Boolean;
250250
begin
251251
Result := not ErlangInPath;
252252
end;
253253
254+
procedure AppendErlangPathIfTaskSelected(Of64Bit: Boolean);
255+
var
256+
Path: String;
257+
RegValue: String;
258+
begin
259+
if IsTaskSelected('erlpath') then begin
260+
Path := GetErlangPath(Of64Bit);
261+
if not (Path = '') then begin
262+
RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 'Path', RegValue);
263+
if Pos(Path, RegValue) = 0 then begin
264+
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 'Path', RegValue + ';' + Path + '\bin');
265+
end;
266+
end;
267+
end;
268+
end;
269+
254270
procedure CurPageChanged(CurPageID: Integer);
255271
begin
256272
if CurPageID = wpPreparing then begin

0 commit comments

Comments
 (0)