Browse Source

innosetup: Add i2pd to PATH

pull/108/head
Kill Your TV 10 years ago
parent
commit
4b0001b442
  1. 71
      Win32/inno_installer.iss

71
Win32/inno_installer.iss

@ -1,10 +1,10 @@
#define I2Pd_AppName "i2pd" #define I2Pd_AppName "i2pd"
#define I2Pd_ver "0.2" #define I2Pd_ver "0.2"
[Setup] [Setup]
AppName={#I2Pd_AppName} AppName={#I2Pd_AppName}
AppVersion={#I2Pd_ver} AppVersion={#I2Pd_ver}
DefaultDirName={pf}\I2Pd DefaultDirName={pf}\I2Pd
DefaultGroupName=I2Pd DefaultGroupName=I2Pd
UninstallDisplayIcon={app}\I2Pd.exe UninstallDisplayIcon={app}\I2Pd.exe
@ -25,19 +25,23 @@ Source: "..\README.md"; DestDir: "{app}"; DestName: "Readme.txt"; AfterInstall:
Name: "{group}\I2Pd"; Filename: "{app}\i2pd.exe" Name: "{group}\I2Pd"; Filename: "{app}\i2pd.exe"
Name: "{group}\Readme"; Filename: "{app}\Readme.txt" Name: "{group}\Readme"; Filename: "{app}\Readme.txt"
[Registry]
Root: HKCU; Subkey: "Environment"; ValueName: "Path"; ValueType: "string"; ValueData: "{app};{olddata}"; Check: NotOnPathAlready(); Flags: preservestringtype;
[Code] [Code]
var var
DefaultTop, DefaultTop,
DefaultLeft, DefaultLeft,
DefaultHeight, DefaultHeight,
DefaultBackTop, DefaultBackTop,
DefaultNextTop, DefaultNextTop,
DefaultCancelTop, DefaultCancelTop,
DefaultBevelTop, DefaultBevelTop,
DefaultOuterHeight: Integer; DefaultOuterHeight: Integer;
const const
LicenseHeight = 400; LicenseHeight = 400;
LF = #10; LF = #10;
CR = #13; CR = #13;
@ -86,7 +90,7 @@ begin
WizardForm.BackButton.Top := DefaultBackTop + (LicenseHeight - DefaultHeight); WizardForm.BackButton.Top := DefaultBackTop + (LicenseHeight - DefaultHeight);
WizardForm.Bevel.Top := DefaultBevelTop + (LicenseHeight - DefaultHeight); WizardForm.Bevel.Top := DefaultBevelTop + (LicenseHeight - DefaultHeight);
end end
else else
begin begin
WizardForm.Top := DefaultTop; WizardForm.Top := DefaultTop;
WizardForm.Left := DefaultLeft; WizardForm.Left := DefaultLeft;
@ -97,4 +101,49 @@ begin
WizardForm.BackButton.Top := DefaultBackTop; WizardForm.BackButton.Top := DefaultBackTop;
WizardForm.Bevel.Top := DefaultBevelTop; WizardForm.Bevel.Top := DefaultBevelTop;
end; end;
end; end;
function NotOnPathAlready(): Boolean;
var
BinDir, Path: String;
begin
Log('Checking if i2pd dir is already in the %PATH%');
if RegQueryStringValue(HKEY_CURRENT_USER, 'Environment', 'Path', Path) then
begin // Successfully read the value
Log('HKCUEnvironmentPATH = ' + Path);
BinDir := ExpandConstant('{app}');
Log('Looking for i2pd dir in %PATH%: ' + BinDir + ' in ' + Path);
if Pos(LowerCase(BinDir), Lowercase(Path)) = 0 then
begin
Log('Did not find i2pd dir in %PATH% so I will add it');
Result := True;
end
else
begin
Log('Found i2pd dir in %PATH% so will not add it again');
Result := False;
end
end
else // The key probably doesn't exist
begin
Log('Could not access HKCUEnvironmentPATH so I assume that it is OK to add it');
Result := True;
end;
end;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
BinDir, Path: String;
begin
if (CurUninstallStep = usPostUninstall)
and (RegQueryStringValue(HKEY_CURRENT_USER, 'Environment', 'PATH', Path)) then
begin
BinDir := ExpandConstant('{app}');
if Pos(LowerCase(BinDir) + ';', Lowercase(Path)) <> 0 then
begin
StringChange(Path, BinDir + ';', '');
RegWriteStringValue(HKEY_CURRENT_USER, 'Environment', 'PATH', Path);
end;
end;
end;

Loading…
Cancel
Save