Skip to content

Commit

Permalink
silent setup
Browse files Browse the repository at this point in the history
- silent install without prompt as it's expected when we install nvm-windows from a script
- silent uninstall
- fix a warning (Warning: Line 80, Column 10: [Hint] Variable 'Result' never used)
  • Loading branch information
fredericrous authored May 4, 2017
1 parent 496971a commit 2f27f4f
Showing 1 changed file with 32 additions and 20 deletions.
52 changes: 32 additions & 20 deletions nvm.iss
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ end;
var
nodeInUse: string;
function TakeControl(np: string; nv: string): string;
procedure TakeControl(np: string; nv: string);
var
path: string;
begin
Expand Down Expand Up @@ -147,21 +147,26 @@ begin
Exec(ExpandConstant('{cmd}'), '/C node -v > "' + TmpResultFile + '"', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
LoadStringFromFile(TmpResultFile, stdout);
NodeVersion := Trim(Ansi2String(stdout));
msg1 := MsgBox('Node '+NodeVersion+' is already installed. Do you want NVM to control this version?', mbConfirmation, MB_YESNO) = IDNO;
if msg1 then begin
msg2 := MsgBox('NVM cannot run in parallel with an existing Node.js installation. Node.js must be uninstalled before NVM can be installed, or you must allow NVM to control the existing installation. Do you want NVM to control node '+NodeVersion+'?', mbConfirmation, MB_YESNO) = IDYES;
if msg2 then begin
TakeControl(NodePath, NodeVersion);
if WizardSilent then begin
TakeControl(NodePath, NodeVersion);
end
else begin
msg1 := MsgBox('Node '+NodeVersion+' is already installed. Do you want NVM to control this version?', mbConfirmation, MB_YESNO) = IDNO;
if msg1 then begin
msg2 := MsgBox('NVM cannot run in parallel with an existing Node.js installation. Node.js must be uninstalled before NVM can be installed, or you must allow NVM to control the existing installation. Do you want NVM to control node '+NodeVersion+'?', mbConfirmation, MB_YESNO) = IDYES;
if msg2 then begin
TakeControl(NodePath, NodeVersion);
end;
if not msg2 then begin
DeleteFile(TmpResultFile);
WizardForm.Close;
end;
end;
if not msg2 then begin
DeleteFile(TmpResultFile);
WizardForm.Close;
if not msg1 then
begin
TakeControl(NodePath, NodeVersion);
end;
end;
if not msg1 then
begin
TakeControl(NodePath, NodeVersion);
end;
end;
// Make sure the symlink directory doesn't exist
Expand All @@ -172,13 +177,18 @@ begin
RemoveDir(SymlinkPage.Values[0]);
end;
if not dir1 then begin
msg3 := MsgBox(SymlinkPage.Values[0]+' will be overwritten and all contents will be lost. Do you want to proceed?', mbConfirmation, MB_OKCANCEL) = IDOK;
if msg3 then begin
if WizardSilent then begin
RemoveDir(SymlinkPage.Values[0]);
end;
if not msg3 then begin
//RaiseException('The symlink cannot be created due to a conflict with the existing directory at '+SymlinkPage.Values[0]);
WizardForm.Close;
end
else begin
msg3 := MsgBox(SymlinkPage.Values[0]+' will be overwritten and all contents will be lost. Do you want to proceed?', mbConfirmation, MB_OKCANCEL) = IDOK;
if msg3 then begin
RemoveDir(SymlinkPage.Values[0]);
end;
if not msg3 then begin
//RaiseException('The symlink cannot be created due to a conflict with the existing directory at '+SymlinkPage.Values[0]);
WizardForm.Close;
end;
end;
end;
end;
Expand All @@ -199,7 +209,9 @@ var
path: string;
nvm_symlink: string;
begin
MsgBox('Removing NVM for Windows will remove the nvm command and all versions of node.js, including global npm modules.', mbInformation, MB_OK);
if not UninstallSilent then begin
MsgBox('Removing NVM for Windows will remove the nvm command and all versions of node.js, including global npm modules.', mbInformation, MB_OK);
end;
// Remove the symlink
RegQueryStringValue(HKEY_LOCAL_MACHINE,
Expand Down

0 comments on commit 2f27f4f

Please sign in to comment.